我知道我们可以使用java打开图像文件e.t.c的编辑,这是我的例子:
File file = new File("c:\\Users\\Aleksa\\Desktop\\Logo.png");
Desktop.getDesktop().edit(file);
现在,我想知道,如何打开特定的应用程序来编辑该文件。 例如,Java检查我是否有" Abdobe PhotoShop",如果我这样做,则在Photo Shop中打开文件,而不是像油漆那样打开文件。 以及打开特定编辑器来编辑文件的方法吗?
- 谢谢你的帮助。
答案 0 :(得分:1)
来自https://docs.oracle.com/javase/tutorial/uiswing/misc/desktop.html:
“Desktop API使用主机操作系统的文件关联来启动与特定文件类型相关联的应用程序。例如,如果OpenDocument文本(.odt)文件扩展名与OpenOffice Writer应用程序相关联,则Java应用程序可以启动OpenOffice Writer以打开,编辑甚至打印具有该关联的文件。根据主机系统,不同的应用程序可能与不同的操作相关联。例如,如果无法打印特定文件,请首先检查其扩展是否有打印给定操作系统上的关联。“
我认为你不能从Java改变这种关联,如果可能,它可能也会影响你的操作系统。
TL; DR:如果您想使用默认的OS应用程序打开,请使用Desktop.open()
。如果要使用自定义编辑器打开,请显式调用编辑器,例如使用Runtime.exec()
。