2012-09-05 71 views
3

瞭解Java版本(例如1.6.0_31)如何編程式地(在Java程序中)找到相應的JRE位於Windows計算機上磁盤的哪個位置?在Windows中查找正在運行的JRE目錄

+3

您只能找到正在運行的Java進程的來源。 Java可以安裝在系統的任何地方。您可以搜索可能的位置... –

+0

不要忘記接受答案。或者說出爲什麼這些答案不符合你的要求,如果是這樣的話。 (檢測所有已安裝版本中的一個安裝目錄?) – PhiLho

回答

2

應該可以通過讀取系統環境變量的值java.home來獲得。見http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

但是請記住,安全管理器可能會阻止你,從上面的鏈接:

安全考慮:進入系統屬性可以通過安全管理器來限制 。這通常是小程序中的一個問題,其中 不能讀取某些系統屬性,也不能寫入 的任何系統屬性。有關訪問 小程序中的系統屬性的更多信息,請參閱「使用Java Rich Internet應用程序課程進行更多操作」中的系統屬性。

+0

Afaik,甚至可以從applet內禁用安全管理器,或者Oracle已經修復了泄漏問題? ;-) –

+0

@Peter:我沒有意識到這個錯誤 - 試圖避免使用小程序:-) – home

+0

http://www.kb.cert.org/vuls/id/636312 - Browsersettings>禁用Java(現在) –

1

你可以看一下當前system propertyjava.home

String installDirOfJRE = System.getProperty("java.home"); 

根據返回的值,你可以預期(但只是希望),其他版本的JRE將可能位於相同的父文件夾中,因此您可以嘗試搜索您想要查找的版本..

恐怕沒有其他選項...

1
System.getProperty("java.runtime.version"); 

給你執行VM的版本。