有没有办法在不通过文件系统搜索的情况下获取已安装应用程序的位置?Java/Windows获取应用程序位置
编辑:对不起,没有足够清晰的问题,我想要的是想弄清楚在哪里从一个Java应用程序安装firefox。我想启动一个扩展安装。
有没有办法在不通过文件系统搜索的情况下获取已安装应用程序的位置?Java/Windows获取应用程序位置
编辑:对不起,没有足够清晰的问题,我想要的是想弄清楚在哪里从一个Java应用程序安装firefox。我想启动一个扩展安装。
编辑:Firefox在HKLM \ Software \ Mozilla \ Mozilla Firefox \\ Main \ InstallDirectory中有一个注册表项。在同样的HKLM \ Software \ Mozilla路径中还有一个CurrentVersion键,您可以从中获取版本号。
在Linux上可以使用的Runtime.exec()调用这系统程序,例如其中火狐将返回类似在/ usr/bin中/火狐。这在Windows上不起作用,不幸的是,它似乎也不能在OS X上工作,尽管它是基于UNIX的。
for os x“open -a Firefox
在Windows上执行此操作的唯一方法是通过注册表读取。 Jeff Storey的帖子有你需要的注册码。至于从Java这样做,我原来的回应是:你不能没有使用JNI。
但后来我做了一些google搜索,发现this library
的方法是有点新颖的B/C它涉及到访问不属于一般可用Sun的偏好API的部分。当然,这对于不同的JVM并不兼容,并且可能随着Sun的JRE的发展而崩溃 - 但是......好吧 - 我敢打赌它至少在一两年内有用,可能会更长一些。这比自己编写JNI更容易...
这取决于您所指的应用程序的“位置”。它可能是JVM的路径,JVM实例的cwd,.class文件/ JAR的位置或其他一些东西。 – Mike