【问题标题】:Get application associated with a file java获取与文件 java 关联的应用程序
【发布时间】:2020-08-24 13:49:34
【问题描述】:

我正在尝试获取文件的关联程序,例如 如果我有一个文件C:/foo/bar.example 我想得到什么程序 打开 .example(有点像 Notepad.exe 打开 .txt 文件)。

我尝试使用runtime.exec("rundll32 url.dll,FileProtocolHandler C:/foo/bar.example") 创建一个打开该文件的进程 但无法使用Process 获取关联的应用程序。

这个例子展示了我试图在 Windows 中实现的目标,虽然我不想跨平台。

【问题讨论】:

  • 相关How to open user system preferred editor for given file?,但没有记录的方式来确定运行的应用程序。
  • .example 是 Java 应用程序吗?是jar文件吗?
  • 我不认为每个操作系统都有一个通用的答案。但也许here 的答案可能对您有所帮助。
  • @MaS 不适用于 Java 11/12

标签: java


【解决方案1】:

我认为仅使用 pure Java 是不可能的。

我现在想到的唯一方法(使用 Java)是使用JNA 直接与 Win32-API 交互(注意这是用 C 语言而不是 Java 语言编写的)。实现 Win32-API 部分的方法见this answer,JNA 的使用方法见this link

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 2019-08-31
    • 1970-01-01
    • 2011-11-28
    • 2011-01-03
    • 1970-01-01
    • 2018-02-25
    • 2022-01-11
    • 2011-02-10
    相关资源
    最近更新 更多