是否可以在eclipse插件中找到程序的安裝文件夾?如何在Java eclipse插件中找到程序的安裝文件夾
例如,有一個名爲'W-app'的程序,默認安裝在c:\ program files中。但是,一些用戶可能會選擇不同的目錄(例如D :)。
是否有可能在java中動態查找'W-app'程序的安裝文件夾?
是否可以在eclipse插件中找到程序的安裝文件夾?如何在Java eclipse插件中找到程序的安裝文件夾
例如,有一個名爲'W-app'的程序,默認安裝在c:\ program files中。但是,一些用戶可能會選擇不同的目錄(例如D :)。
是否有可能在java中動態查找'W-app'程序的安裝文件夾?
看來您並不是在詢問如何定位Eclipse安裝本身,而是在尋找其他程序。
在這樣的事件中,你有兩個問題。一,你的代碼將是特定於平臺的,二,對於任意程序沒有保證的方法。根據你的文章,我假設你對Windows感興趣。
如果您知道該程序在PATH系統變量中,則可以使用where
命令。 where.exe someappinpath.exe
將返回當前Windows版本的路徑。要真正從Java執行命令,您可以使用簡單的Runtime.getRuntime().exec()
調用,或者參見this question以獲得更好的執行方式。
如果程序不能在PATH中,那麼如果你知道它寫入Windows註冊表是什麼,那是很好的。然後,您可以在HKCU\Software
或HKLM\Software
下找到應用程序的數據和安裝位置。同樣,這需要了解應用程序在註冊表中保存的內容。
在HKCU
和HKLM
下查看SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
將向您提供有關已寫入卸載信息的所有程序的信息。不幸的是,一些程序不這樣做,但如果是這樣的話,你不能指望什麼。
作爲最後的手段,您可以在驅動器中搜索與程序可執行文件名匹配的文件。這不是一個好方法,它速度很慢,您可能會發現錯誤的文件。
從純粹的實用角度來看,如果你的插件依賴於一些第三方程序,我會先嚐試自動定位程序(通過where
或查找已知的註冊表項,或默認安裝位置)如果失敗,請讓用戶指出程序的位置。
謝謝杜曼。這似乎解決了我的問題。我會根據你的解決方案評估我的可能性,以便我能做些什麼。 – 2015-03-04 04:02:34