public class Desktop extends Object
Desktop class allows a Java application to launch associated applications registered on the native desktop to handle a
URI or a file.
Supported operations include:
mailto URI;This class provides methods corresponding to these operations. The methods look for the associated application registered on the current platform, and launch it to handle a URI or file. If there is no associated application or the associated application fails to be launched, an exception is thrown.
An application is registered to a URI or file type; for example, the "sxi" file extension is typically registered to StarOffice. The mechanism of registering, accessing, and launching the associated application is platform-dependent.
Each operation is an action type represented by the Desktop.Action class.
Note: when some action is invoked and the associated application is executed, it will be executed on the same system as the one on which the Java application was launched.
| Modifier and Type | Class and Description |
|---|---|
static class |
Desktop
Represents an action type.
|
| Modifier and Type | Method and Description |
|---|---|
void |
browse(URI
Launches the default browser to display a
URI.
|
void |
edit(File
Launches the associated editor application and opens a file for editing.
|
static Desktop |
getDesktop()
Returns the
Desktop instance of the current browser context.
|
static boolean |
isDesktopSupported()
Tests whether this class is supported on the current platform.
|
boolean |
isSupported(Desktop
Tests whether an action is supported on the current platform.
|
void |
mail()
Launches the mail composing window of the user default mail client.
|
void |
mail(URI
Launches the mail composing window of the user default mail client, filling the message fields specified by a
mailto: URI.
|
void |
open(File
Launches the associated application to open the file.
|
void |
print(File
Prints a file with the native desktop printing facility, using the associated application's print command.
|
public static DesktopgetDesktop()
Desktop instance of the current browser context. On some platforms the Desktop API may not be supported; use the
isDesktopSupported() method to determine if the current desktop is supported.
HeadlessException - if
GraphicsEnvironment.isHeadless() returns
true
UnsupportedOperationException - if this class is not supported on the current platform
isDesktopSupported(),
GraphicsEnvironment.isHeadless()
public static boolean isDesktopSupported()
getDesktop() to retrieve an instance.
true if this class is supported on the current platform;
false otherwise
getDesktop()
public boolean isSupported(Desktop.Action action)
Even when the platform supports an action, a file or URI may not have a registered application for the action. For example, most of the platforms support the Desktop action. But for a specific file, there may not be an application registered to open it. In this case, isSupported(java.awt.Desktop.Action) may return true, but the corresponding action method will throw an IOException.
action - the specified
Desktop.Action
true if the specified action is supported on the current platform;
false otherwise
Desktop.Action
public void open(Filefile) throws IOException
If the specified file is a directory, the file manager of the current platform is launched to open it.
file - the file to be opened with the associated application
NullPointerException - if
file is
null
IllegalArgumentException - if the specified file doesn't exist
UnsupportedOperationException - if the current platform does not support the
Desktop.Action.OPEN action
IOException - if the specified file has no associated application or the associated application fails to be launched
SecurityException - if a security manager exists and its
SecurityManager.checkRead(java.lang.String) method denies read access to the file, or it denies the
AWTPermission("showWindowWithoutWarningBanner") permission, or the calling thread is not allowed to create a subprocess
AWTPermission
public void edit(Filefile) throws IOException
file - the file to be opened for editing
NullPointerException - if the specified file is
null
IllegalArgumentException - if the specified file doesn't exist
UnsupportedOperationException - if the current platform does not support the
Desktop.Action.EDIT action
IOException - if the specified file has no associated editor, or the associated application fails to be launched
SecurityException - if a security manager exists and its
SecurityManager.checkRead(java.lang.String) method denies read access to the file, or
SecurityManager.checkWrite(java.lang.String) method denies write access to the file, or it denies the
AWTPermission("showWindowWithoutWarningBanner") permission, or the calling thread is not allowed to create a subprocess
AWTPermission
public void print(Filefile) throws IOException
file - the file to be printed
NullPointerException - if the specified file is
null
IllegalArgumentException - if the specified file doesn't exist
UnsupportedOperationException - if the current platform does not support the
Desktop.Action.PRINT action
IOException - if the specified file has no associated application that can be used to print it
SecurityException - if a security manager exists and its
SecurityManager.checkRead(java.lang.String) method denies read access to the file, or its
SecurityManager.checkPrintJobAccess() method denies the permission to print the file, or the calling thread is not allowed to create a subprocess
public void browse(URIuri) throws IOException
URI. If the default browser is not able to handle the specified
URI, the application registered for handling
URIs of the specified type is invoked. The application is determined from the protocol and path of the
URI, as defined by the
URI class.
If the calling thread does not have the necessary permissions, and this is invoked from within an applet, AppletContext.showDocument() is used. Similarly, if the calling does not have the necessary permissions, and this is invoked from within a Java Web Started application, BasicService.showDocument() is used.
uri - the URI to be displayed in the user default browser
NullPointerException - if
uri is
null
UnsupportedOperationException - if the current platform does not support the
Desktop.Action.BROWSE action
IOException - if the user default browser is not found, or it fails to be launched, or the default handler application failed to be launched
SecurityException - if a security manager exists and it denies the
AWTPermission("showWindowWithoutWarningBanner") permission, or the calling thread is not allowed to create a subprocess; and not invoked from within an applet or Java Web Started application
IllegalArgumentException - if the necessary permissions are not available and the URI can not be converted to a
URL
URI,
AWTPermission,
AppletContext
public void mail()
throws IOException
UnsupportedOperationException - if the current platform does not support the
Desktop.Action.MAIL action
IOException - if the user default mail client is not found, or it fails to be launched
SecurityException - if a security manager exists and it denies the
AWTPermission("showWindowWithoutWarningBanner") permission, or the calling thread is not allowed to create a subprocess
AWTPermission
public void mail(URImailtoURI) throws IOException
mailto: URI.
A mailto: URI can specify message fields including "to", "cc", "subject", "body", etc. See The mailto URL scheme (RFC 2368) for the mailto: URI specification details.
mailtoURI - the specified
mailto: URI
NullPointerException - if the specified URI is
null
IllegalArgumentException - if the URI scheme is not
"mailto"
UnsupportedOperationException - if the current platform does not support the
Desktop.Action.MAIL action
IOException - if the user default mail client is not found or fails to be launched
SecurityException - if a security manager exists and it denies the
AWTPermission("showWindowWithoutWarningBanner") permission, or the calling thread is not allowed to create a subprocess
URI,
AWTPermission