英文:
Get application associated with a file java
问题
我正在尝试获取文件的关联程序,例如,如果我有一个文件 C:/foo/bar.example
,我想知道是什么程序打开了 .example
文件(有点类似 Notepad.exe 打开 .txt 文件)。
我尝试创建一个进程来打开该文件,使用的命令是 runtime.exec("rundll32 url.dll,FileProtocolHandler C:/foo/bar.example")
,但是无法通过 Process 获取关联的应用程序。
这个示例展示了我在 Windows 中试图实现的内容,虽然我希望能够跨平台实现。
英文:
I am trying to get the associated program of a file, for example
if I have a file C:/foo/bar.example
I want to get what program
opens .example
(Kind of like Notepad.exe opens .txt Files).
I tried creating a process to open that file using runtime.exec("rundll32 url.dll,FileProtocolHandler C:/foo/bar.example")
but there is no way to get the associated application using Process.
This example shows what I am trying to achieve in Windows, although I want something cross platform.
答案1
得分: 2
我不认为仅使用纯粹的Java就能实现这一点。
我目前想到的唯一方法(使用Java)是使用JNA来直接与Win32 API进行接口交互(请注意,这是用C而不是Java编写的)。查看此答案以了解如何实现Win32 API部分,以及此链接以了解如何使用JNA。
英文:
I do not think that this is possible just using pure Java.
The only way that comes to my mind right now (using Java) is to use JNA to directly interface with the Win32-API (note that this is written in C and not Java). See this answer for how to achieve the Win32-API-part and this link for how to use JNA.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论