吴志勇的博客 吴志勇的博客
  • h5

    • HTML5&CSS3
  • scss

    • css预处理语言
  • JavaScript

    • JavaScript教程
    • Ajax
    • ES6教程
    • NodeJS
    • Typescript
  • 框架

    • Jquery
    • VUE
    • React
  • Swing专题
  • java基础
  • javaweb
  • 框架
  • 数据库
  • netty
  • 设计模式
  • 微服务及架构
  • 云原生
  • maven
  • 单元测试
工具
我的
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

吴志勇

......
  • h5

    • HTML5&CSS3
  • scss

    • css预处理语言
  • JavaScript

    • JavaScript教程
    • Ajax
    • ES6教程
    • NodeJS
    • Typescript
  • 框架

    • Jquery
    • VUE
    • React
  • Swing专题
  • java基础
  • javaweb
  • 框架
  • 数据库
  • netty
  • 设计模式
  • 微服务及架构
  • 云原生
  • maven
  • 单元测试
工具
我的
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Swing专题

    • swing图形化界面简介

    • JavaSwing布局管理器

    • JavaSwing基本组件

    • JavaSwing面板组件

    • JavaSwing其他组件

    • JavaSwing相关特性

    • 扩展:JavaAWTSwing其他相关

      • Java绘图-使用Graphics类绘制线段、矩形、椭圆圆弧扇形、图片、文本
      • Java图片操作-图片的读取、绘制、缩放、裁剪、保存
      • Java代码截屏:使用Java代码截取电脑屏幕并保存
      • Java模拟鼠标键盘输入事件-Robot类
      • Java操作桌面应用-Desktop类
      • Java操作系统剪贴板(Clipboard)实现复制和粘贴
  • java基础

  • javaweb

  • 框架

  • Maven
  • 单元测试
  • 动态代理
  • 数据库

  • netty

  • 设计模式

  • 微服务及架构

  • 云原生

  • Velocity模板引擎
  • 后端
  • Swing专题
  • 扩展:JavaAWTSwing其他相关
wuzhiyong
2024-09-18

Java操作桌面应用-Desktop类

官方JavaDocsApi: java.awt.Desktop (opens new window)

Desktop 类允许 Java 应用程序启动已在本机桌面上注册的关联应用程序,以处理 URI 或文件。

支持的操作包括:

  • 打开浏览器: 启动用户默认浏览器来显示指定的 URI;
  • 打开邮件客户端: 启动带有可选 mailto URI 的用户默认邮件客户端;
  • 打开文件/文件夹: 启动已注册的应用程序,以打开、编辑 或 打印 指定的文件。

Desktop 类相关方法:

// 判断当前平台是否支持此类
static boolean isDesktopSupported()

// 获取与当前平台关联的 Desktop 实例
static Desktop getDesktop()

// 启动默认浏览器来显示 URI
void browse(URI uri)

// 启动关联应用程序来打开文件
void open(File file)

// 启动关联编辑器应用程序并打开用于编辑的文件
void edit(File file)

// 使用关联应用程序的打印命令, 用本机桌面打印设备来打印文件
void print(File file)

// 启动用户默认邮件客户端的邮件组合窗口
void mail()

// 启动用户默认邮件客户端的邮件组合窗口, 填充由 mailto:URI 指定的消息字段
void mail(URI mailtoURI)

/*
 * 判断当前平台是否支持某一操作, 参数为以下值之一:
 *     Desktop.Action.OPEN: 打开动作
 *     Desktop.Action.EDIT: 编辑动作
 *     Desktop.Action.PRINT: 打印动作
 *     Desktop.Action.MAIL: 邮件动作
 *     Desktop.Action.BROWSE: 浏览器动作
 */
boolean isSupported(Desktop.Action action)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 代码实例:

package com.xiets.desktop;

import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.net.URI;

public class Main {

    public static void main(String[] args) throws IOException {
        // 先判断当前平台是否支持桌面
        if (Desktop.isDesktopSupported()) {
            // 获取当前平台桌面实例
            Desktop desktop = Desktop.getDesktop();

            // 使用默认浏览器打开链接
            desktop.browse(URI.create("https://blog.csdn.net/xietansheng"));

            // 打开指定文件/文件夹
            desktop.open(new File("C:\\"));

        } else {
            System.out.println("当前平台不支持 Desktop");
        }
    }

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#swing
上次更新: 2024-09-19 12:17:39

← Java模拟鼠标键盘输入事件-Robot类 Java操作系统剪贴板(Clipboard)实现复制和粘贴→

Copyright © 2020-2025 wuzhiyong
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式