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.Action
Represents an action type.
|
Modifier and Type | Static Method and Description |
---|---|
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.
|
Modifier and Type | Method and Description |
---|---|
void |
browse(java.net.URI uri)
Launches the default browser to display a
URI . |
void |
edit(java.io.File file)
Launches the associated editor application and opens a file for
editing.
|
boolean |
isSupported(Desktop.Action action)
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(java.net.URI mailtoURI)
Launches the mail composing window of the user default mail
client, filling the message fields specified by a
mailto: URI. |
void |
open(java.io.File file)
Launches the associated application to open the file.
|
void |
print(java.io.File file)
Prints a file with the native desktop printing facility, using
the associated application's print command.
|
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.OPEN
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
otherwiseDesktop.Action
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 applicationjava.lang.NullPointerException
- if file
is null
java.lang.IllegalArgumentException
- if the specified file doesn't
existjava.lang.UnsupportedOperationException
- if the current platform
does not support the Desktop.Action.OPEN
actionjava.io.IOException
- if the specified file has no associated
application or the associated application fails to be launchedjava.lang.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
subprocessAWTPermission
file
- the file to be opened for editingjava.lang.NullPointerException
- if the specified file is null
java.lang.IllegalArgumentException
- if the specified file doesn't
existjava.lang.UnsupportedOperationException
- if the current platform
does not support the Desktop.Action.EDIT
actionjava.io.IOException
- if the specified file has no associated
editor, or the associated application fails to be launchedjava.lang.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
subprocessAWTPermission
file
- the file to be printedjava.lang.NullPointerException
- if the specified file is null
java.lang.IllegalArgumentException
- if the specified file doesn't
existjava.lang.UnsupportedOperationException
- if the current platform
does not support the Desktop.Action.PRINT
actionjava.io.IOException
- if the specified file has no associated
application that can be used to print itjava.lang.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 subprocessURI
.
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 browserjava.lang.NullPointerException
- if uri
is null
java.lang.UnsupportedOperationException
- if the current platform
does not support the Desktop.Action.BROWSE
actionjava.io.IOException
- if the user default browser is not found,
or it fails to be launched, or the default handler application
failed to be launchedjava.lang.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
applicationjava.lang.IllegalArgumentException
- if the necessary permissions
are not available and the URI can not be converted to a URL
URI
,
AWTPermission
,
AppletContext
java.lang.UnsupportedOperationException
- if the current platform
does not support the Desktop.Action.MAIL
actionjava.io.IOException
- if the user default mail client is not
found, or it fails to be launchedjava.lang.SecurityException
- if a security manager exists and it
denies the
AWTPermission("showWindowWithoutWarningBanner")
permission, or the calling thread is not allowed to create a
subprocessAWTPermission
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:
URIjava.lang.NullPointerException
- if the specified URI is null
java.lang.IllegalArgumentException
- if the URI scheme is not
"mailto"
java.lang.UnsupportedOperationException
- if the current platform
does not support the Desktop.Action.MAIL
actionjava.io.IOException
- if the user default mail client is not
found or fails to be launchedjava.lang.SecurityException
- if a security manager exists and it
denies the
AWTPermission("showWindowWithoutWarningBanner")
permission, or the calling thread is not allowed to create a
subprocessURI
,
AWTPermission
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
java.lang.UnsupportedOperationException
- if this class is not
supported on the current platformisDesktopSupported()
,
GraphicsEnvironment.isHeadless()
getDesktop()
to retrieve an
instance.true
if this class is supported on the
current platform; false
otherwisegetDesktop()