Multiple implementations may be installed concurrently.
All implementations must be able to describe the located printers
as instances of a PrintService.
Typically implementations of this service class are located
automatically in JAR files (see the SPI JAR file specification).
These classes must be instantiable using a default constructor.
Alternatively applications may explicitly register instances
Applications use only the static methods of this abstract class.
The instance methods are implemented by a service provider in a subclass
and the unification of the results from all installed lookup classes
are reported by the static methods of this class when called by
A PrintServiceLookup implementor is recommended to check for the
SecurityManager.checkPrintJobAccess() to deny access to untrusted code.
Following this recommended policy means that untrusted code may not
be able to locate any print services. Downloaded applets are the most
common example of untrusted code.
This check is made on a per lookup service basis to allow flexibility in
the policy to reflect the needs of different lookup services.
Services which are registered by registerService(PrintService)
will not be included in lookup results if a security manager is
installed and its checkPrintJobAccess() method denies access.