java.lang.Object java.awt.Desktop
public class Desktop
Desktop
类允许 Java 应用程序启动已在本机桌面上注册的关联应用程序,以处理 URI
或文件。
支持的操作包括:
mailto
URI 的用户默认邮件客户端;此类提供与这些操作对应的方法。这些方法查找在当前平台上注册的关联应用程序,并启动该应用程序来处理 URI 或文件。如果没有关联应用程序或关联应用程序无法启动,则抛出异常。
应用程序被注册为 URI 或文件类型;例如,"sxi"
文件扩展名通常注册为 StarOffice。注册、访问和启动关联应用程序的机制与平台有关。
每个操作都是由 Desktop.Action
类表示的一种动作类型。
注:当调用一些动作和执行关联应用程序时,将在与启动 Java 应用程序相同的系统上执行它们。
嵌套类摘要 | |
---|---|
static class |
Desktop.Action 表示动作类型。 |
方法摘要 | |
---|---|
void |
browse(URI uri) 启动默认浏览器来显示 URI 。 |
void |
edit(File file) 启动关联编辑器应用程序并打开用于编辑的文件。 |
static Desktop |
getDesktop() 返回当前浏览器上下文的 Desktop 实例。 |
static boolean |
isDesktopSupported() 测试当前平台是否支持此类。 |
boolean |
isSupported(Desktop.Action action) 测试当前平台是否支持某一动作。 |
void |
mail() 启动用户默认邮件客户端的邮件组合窗口。 |
void |
mail(URI mailtoURI) 启动用户默认邮件客户端的邮件组合窗口,填充由 mailto: URI 指定的消息字段。 |
void |
open(File file) 启动关联应用程序来打开文件。 |
void |
print(File file) 使用关联应用程序的打印命令,用本机桌面打印设施来打印文件。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法详细信息 |
---|
public static Desktop getDesktop()
Desktop
实例。一些平台不支持 Desktop API;可以使用
isDesktopSupported()
方法来确定是否支持当前桌面。
HeadlessException
- 如果
GraphicsEnvironment.isHeadless()
返回
true
UnsupportedOperationException
- 如果当前平台不支持此类
isDesktopSupported()
,
GraphicsEnvironment.isHeadless()
public static boolean isDesktopSupported()
getDesktop()
获得实例。
true
;否则返回
false
getDesktop()
public boolean isSupported(Desktop.Action action)
即使平台支持某一动作、文件或 URI,也可能没有针对该动作的注册应用程序。例如,大多数平台支持 Desktop.Action.OPEN
动作。但对于特定文件,可能没有用来打开它的注册应用程序。在这种情况下,isSupported(java.awt.Desktop.Action)
可能返回 true
,但相应的动作方法将抛出 IOException
。
action
- 指定的
Desktop.Action
true
;否则返回
false
Desktop.Action
public void open(File file) throws IOException
如果指定的文件是一个目录,则启动当前平台的文件管理器打开它。
file
- 要用关联应用程序打开的文件
NullPointerException
- 如果
file
为
null
IllegalArgumentException
- 如果指定文件不存在
UnsupportedOperationException
- 如果当前平台不支持
Desktop.Action.OPEN
动作
IOException
- 如果指定文件没有关联应用程序,或者关联应用程序无法启动
SecurityException
- 如果安全管理器存在且其
SecurityManager.checkRead(java.lang.String)
方法拒绝对文件进行读取访问;或者它拒绝
AWTPermission("showWindowWithoutWarningBanner")
权限;或者不允许调用线程创建子进程
AWTPermission
public void edit(File file) throws IOException
file
- 要打开用于编辑的文件
NullPointerException
- 如果指定文件为
null
IllegalArgumentException
- 如果指定文件不存在
UnsupportedOperationException
- 如果当前平台不支持
Desktop.Action.EDIT
动作
IOException
- 如果指定文件没有关联编辑器,或者关联应用程序无法启动
SecurityException
- 如果安全管理器存在且其
SecurityManager.checkRead(java.lang.String)
方法拒绝对文件进行读取访问;或者
SecurityManager.checkWrite(java.lang.String)
方法拒绝对文件进行写入访问;或者它拒绝
AWTPermission("showWindowWithoutWarningBanner")
权限;或者不允许调用线程创建子进程
AWTPermission
public void print(File file) throws IOException
file
- 要打印的文件
NullPointerException
- 如果指定文件为
null
IllegalArgumentException
- 如果指定文件不存在
UnsupportedOperationException
- 如果当前平台不支持
Desktop.Action.PRINT
动作
IOException
- 如果指定文件没有可用于打印它的关联应用程序
SecurityException
- 如果安全管理器存在且其
SecurityManager.checkRead(java.lang.String)
方法拒绝对文件进行读取访问;或者其
SecurityManager.checkPrintJobAccess()
方法拒绝打印文件的权限;或者不允许调用线程创建子进程
public void browse(URI uri) throws IOException
URI
。如果默认浏览器无法处理指定的
URI
,则调用用于处理指定类型的
URI
的注册应用程序。正如
URI
类定义的一样,根据协议和
URI
的路径确定应用程序。
如果调用线程没有必需的权限,且它是从 applet 中调用的,则使用 AppletContext.showDocument()
。类似地,如果调用线程没有必需的权限,且它是从 Java Web Started 应用程序中调用的,则使用 BasicService.showDocument()
。
uri
- 将显示在用户默认浏览器中的 URI
NullPointerException
- 如果
uri
为
null
UnsupportedOperationException
- 如果当前平台不支持
Desktop.Action.BROWSE
动作
IOException
- 如果未找到用户默认浏览器或无法启动它,或者默认处理器应用程序无法启动
SecurityException
- 如果安全管理器存在且它拒绝
AWTPermission("showWindowWithoutWarningBanner")
权限;或者它不允许调用线程创建子进程,且不是从 applet 或 Java Web Started 应用程序中调用的
IllegalArgumentException
- 如果必需权限不可用且 URI 无法转换为
URL
URI
,
AWTPermission
,
AppletContext
public void mail() throws IOException
UnsupportedOperationException
- 如果当前平台不支持
Desktop.Action.MAIL
动作
IOException
- 如果未找到默认邮件客户端,或者无法启动它
SecurityException
- 如果安全管理器存在且它拒绝
AWTPermission("showWindowWithoutWarningBanner")
权限,或者它不允许调用线程创建子进程
AWTPermission
public void mail(URI mailtoURI) throws IOException
mailto:
URI 指定的消息字段。
mailto:
URI 可以指定包含 "to"、"cc"、"subject"、"body" 等内容的消息字段。有关 mailto:
URI 规范的详细信息,请参阅 mailto URL scheme (RFC 2368)。
mailtoURI
- 指定的
mailto:
URI
NullPointerException
- 如果指定的 URI 为
null
IllegalArgumentException
- 如果 URI 方案不是
"mailto"
UnsupportedOperationException
- 如果当前平台不支持
Desktop.Action.MAIL
动作
IOException
- 如果未找到用户默认邮件客户端或无法启动它
SecurityException
- 如果安全管理器存在且它拒绝
AWTPermission("showWindowWithoutWarningBanner")
权限,或者它不允许调用线程创建子进程
URI
,
AWTPermission