2009-09-14 149 views
0

有沒有辦法在不通過文件系統搜索的情況下獲取已安裝應用程序的位置?Java/Windows獲取應用程序位置

編輯:對不起,沒有足夠清晰的問題,我想要的是想弄清楚在哪裏從一個Java應用程序安裝firefox。我想啓動一個擴展安裝。

+0

這取決於您所指的應用程序的「位置」。它可能是JVM的路徑,JVM實例的cwd,.class文件/ JAR的位置或其他一些東西。 – Mike

回答

3

編輯:Firefox在HKLM \ Software \ Mozilla \ Mozilla Firefox \\ Main \ InstallDirectory中有一個註冊表項。在同樣的HKLM \ Software \ Mozilla路徑中還有一個CurrentVersion鍵,您可以從中獲取版本號。

0

在Linux上可以使用的Runtime.exec()調用系統程序,例如其中火狐將返回類似在/ usr/bin中/火狐。這在Windows上不起作用,不幸的是,它似乎也不能在OS X上工作,儘管它是基於UNIX的。

+0

for os x「open -a Firefox 」works。 –

0

在Windows上執行此操作的唯一方法是通過註冊表讀取。 Jeff Storey的帖子有你需要的註冊碼。至於從Java這樣做,我原來的迴應是:你不能沒有使用JNI。

但後來我做了一些google搜索,發現this library

的方法是有點新穎的B/C它涉及到訪問不屬於一般可用Sun的偏好API的部分。當然,這對於不同的JVM並不兼容,並且可能隨着Sun的JRE的發展而崩潰 - 但是......好吧 - 我敢打賭它至少在一兩年內有用,可能會更長一些。這比自己編寫JNI更容易...

相關問題