public class Desktop extends Object
Desktop
类允许Java应用程序启动在本机桌面上注册的相关应用程序来处理URI
或文件。
支持的操作包括:
mailto
URI的用户默认邮件客户端; 该类提供与这些操作相对应的方法。 该方法查找在当前平台上注册的关联应用程序,并启动它来处理URI或文件。 如果没有关联的应用程序或相关应用程序无法启动,则抛出异常。
应用程序注册到URI或文件类型; 例如, "sxi"
文件扩展名通常注册到StarSuite。 注册,访问和启动相关应用程序的机制是平台相关的。
每个操作是Desktop.Action
类代表的动作类型。
注意:当一些操作被调用并且相关联的应用程序被执行时,它将在与启动Java应用程序的系统相同的系统上执行。
Modifier and Type | Class and Description |
---|---|
static class |
Desktop.Action
表示动作类型。
|
Modifier and Type | Method and Description |
---|---|
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)
使用相关应用程序的打印命令打印本机桌面打印设备的文件。
|
public static Desktop getDesktop()
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
,但是相应的action方法会抛出一个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
,则调用注册处理指定类型的URIs
的应用程序。
该应用程序是从的协议和路径确定URI
,由所限定URI
类。
如果调用线程没有必要的权限,并且这是从applet内调用的, AppletContext.showDocument()
使用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指定的邮件字段。
A mailto:
URI可以指定包括“to” , “cc” , “subject” , “body”等的消息字段。有关mailto:
URI规范的详细信息,请参见The mailto URL scheme (RFC 2368) 。
mailtoURI
- 指定的
mailto:
URI
NullPointerException
- 如果指定的URI是
null
IllegalArgumentException
- 如果URI方案不是
"mailto"
UnsupportedOperationException
- 如果当前平台不支持
Desktop.Action.MAIL
操作
IOException
- 如果用户默认邮件客户端未找到或无法启动
SecurityException
- 如果安全管理器存在,并拒绝
AWTPermission("showWindowWithoutWarningBanner")
权限,或者调用线程不允许创建子进程
URI
, AWTPermission