有没有办法在不搜索文件系统的情况下获取已安装应用程序的位置?
编辑:很抱歉没有让问题清楚,我想要的是想知道在java应用程序中安装firefox的位置。我想为扩展程序启动安装。答案 0 :(得分:3)
编辑:Firefox在HKLM \ Software \ Mozilla \ Mozilla Firefox \\ Main \ InstallDirectory键中有一个注册表项。在相同的HKLM \ Software \ Mozilla路径中还有一个CurrentVersion密钥,您可以从中获取版本号。
答案 1 :(得分:0)
在Linux上,您可以使用Runtime.exec()来调用哪个系统程序,例如哪个firefox 会返回类似 / usr / bin / firefox的内容即可。这在Windows上不起作用,遗憾的是,它似乎不适用于OS X,尽管它是基于UNIX的。
答案 2 :(得分:0)
在Windows上执行此操作的唯一方法是通过注册表读取。 Jeff Storey的帖子有你需要的注册码。至于从Java做到这一点,我原来的反应将是:你不能不使用JNI。
但后来我做了一些谷歌搜索,发现this library
这种方法有点新颖b / c它涉及访问Sun通常不可用的Preferences API实现的部分内容。这肯定不会与不同的JVM兼容,并且可能会随着Sun的JRE的发展而破裂 - 但是......好吧 - 我敢打赌它会在至少几年,甚至更长时间内有用。而且比自己编写JNI容易得多......