2015-03-03 79 views
0

是否可以在eclipse插件中找到程序的安装文件夹?如何在Java eclipse插件中找到程序的安装文件夹

例如,有一个名为'W-app'的程序,默认安装在c:\ program files中。但是,一些用户可能会选择不同的目录(例如D :)。

是否有可能在java中动态查找'W-app'程序的安装文件夹?

回答

0

看来您并不是在询问如何定位Eclipse安装本身,而是在寻找其他程序。

在这样的事件中,你有两个问题。一,你的代码将是特定于平台的,二,对于任意程序没有保证的方法。根据你的文章,我假设你对Windows感兴趣。

  • 如果您知道该程序在PATH系统变量中,则可以使用where命令。 where.exe someappinpath.exe将返回当前Windows版本的路径。要真正从Java执行命令,您可以使用简单的Runtime.getRuntime().exec()调用,或者参见this question以获得更好的执行方式。

  • 如果程序不能在PATH中,那么如果你知道它写入Windows注册表是什么,那是很好的。然后,您可以在HKCU\SoftwareHKLM\Software下找到应用程序的数据和安装位置。同样,这需要了解应用程序在注册表中保存的内容。

  • HKCUHKLM下查看SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall将向您提供有关已写入卸载信息的所有程序的信息。不幸的是,一些程序不这样做,但如果是这样的话,你不能指望什么。

  • 作为最后的手段,您可以在驱动器中搜索与程序可执行文件名匹配的文件。这不是一个好方法,它速度很慢,您可能会发现错误的文件。

从纯粹的实用角度来看,如果你的插件依赖于一些第三方程序,我会先尝试自动定位程序(通过where或查找已知的注册表项,或默认安装位置)如果失败,请让用户指出程序的位置。

+0

谢谢杜曼。这似乎解决了我的问题。我会根据你的解决方案评估我的可能性,以便我能做些什么。 – 2015-03-04 04:02:34