2013-06-05 54 views
0

我有一個Cocoa Xcode應用程序,我正在編寫,我需要檢查用戶計算機上安裝了哪些Java版本。我知道我可以檢查/System/Library/Frameworks/JavaVM.framework/Versions/並查看存在哪些文件夾;但是,這不適用於Java 7.如何檢查Java 7版本是否通過Cocoa安裝?

當我在我的Mac OS X 10.7.5上安裝Java 7時,它被安裝到/Library/Internet Plugins/JavaAppletPlugin.plugin。但是這並不能讓我知道安裝的Java版本。如果安裝了更新版本的Java,我假設它將安裝到同一個地方。

如果我需要測試用戶的機器上是否安裝了Java 7+ JRE,我應該檢查文件/Library/Internet Plugins/JavaAppletPlugin.plugin是否存在?有沒有更好的方法來檢查?

+0

您可以隨時分析'Java的-version'但我覺得這是不是你正在尋找的......另一個解決方案是抓取或創建一個使用JDK 7創建的非常小的jar,並嘗試使用'java'命令運行它:如果失敗,字節代碼太近你的JVM。 – fge

+0

@fge當我安裝Java 7時,我的'java -version'沒有更新到1.7(它仍然是1.6)。 – Ivan

+1

然後它肯定意味着這是java 6.你確定你安裝了JRE而不僅僅是插件嗎?注意:我不使用Mac OS X,也不使用Java插件... – fge

回答

2

雖然您可能已經安裝了Java 7,但您應該先安裝Apple的Java Mac OS X 2012-006更新。已經這樣做了(然後再安裝Java 7中),Java的版本應該告訴你的Java版本「1.7.x ......」

Determining the Default Version of the JDK

+0

我懷疑用戶會知道這樣做;從測試中,大多數不知道如何安裝Java。這實際上並不能解決確定Java 7是否通過Cocoa安裝的問題。 – Ivan

+1

我認爲你需要java來檢查其他版本。如果您無法確定java -version是否告訴您已安裝最新版本,則必須檢查JavaAppletPlugin.plugin包。之後,您將需要使用完整路徑(..../java)運行您需要的任何jar。在我正在開發的一個項目中,決定包含一個java安裝文件夾,並使用該文件夾代替用戶(我認爲這裏的jar需要webviews或類似的東西,只能在java7中工作),但只是複製它(而不是「安裝」它)。 – DNax

+0

你被允許重新分配Java jar嗎?如果是這樣,我認爲這可能是最好的事情之一。 – Ivan