Desktop 类是java的桌面类,可以启动程序,是jdk 1.6 时发布的,位于 java.awt 包下。
支持以下5种操作,如下
实例
browse打开浏览器访问网址
private static void browse() {
//是否支持桌面
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
try {
// 构建正确的网址
desktop.browse(new URI("https://www.baidu.com/"));
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}
open打开文件、图片、应用
private static void open() {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
try {
// 打开普通文件
desktop.open(new File("D:" + File.separator + "1.txt"));
// 打开图片
desktop.open(new File("D:" + File.separator + "2.png"));
// 打开应用
desktop.open(new File("D:" + File.separator + "NetAssist.exe"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
注:启动bat脚本时,需和bat要启动的服务在同一目录下,否则启动时一闪而过。
edit编辑文件
private static void edit() {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
try {
desktop.edit(new File("D:" + File.separator + "1.txt"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
print打印文件,只是进入打印的动作,并不是真正的使用打印机打印了
private static void print() {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
try {
desktop.print(new File("D:" + File.separator + "1.txt"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上亲测有效,可以体验一下,思考其应用场景。