2012-08-28 134 views
1

我需要驗證Java版本。我使用Java版本驗證

String version = System.getProperty("java.version"); 

如何簡單地解析,知道例如安裝的JRE是最小的。 1.6.0_18版本?我不知道java版本的命名約定是標準的。

+4

這已經被回答了:http://stackoverflow.com/questions/2591083/getting-version-of-java-in-runtime – Endy

+0

這個答案是關於檢查主版本1.5和1.6。我需要驗證更多('.0_18','.0-beta1'等) – marioosh

+0

@marioosh我想我的答案會做你想做的,只是留下評論,如果不清楚或者有什麼 – nurgan

回答

2

是的,有命名約定。你可以從here找到它。關於版本6的更多新鮮信息可以從here找到。

+0

哦。謝謝。我看到這更復雜。你有一些想法如何解析,以驗證安裝的版本? – marioosh

+0

@marioosh看看我的回答 – nurgan

0

是的,據我所知,java版本的命名約定,所以只需使用System.getProperty("java.version")就可以了,並且如果安裝了最低要求的jre,則使用stringTokenizer檢查字符串。

編輯:我寫了Stringbuilder的開頭,我的cource的意思是stringtokenizer。

使用Stringtokenizer,您可以獲得由已定義符號分隔的字符串的子串,以及遍歷字符串的類型。您可能需要第二個stringtokenizer,第一個將Strting與「」隔開。而不是最後一個以「_」分隔的子字符串。採取一個lool here

你可以這樣做: (你也可以通過循環做一個循環,用hasMoreTokens()等檢查,但在這種情況下你不需要,因爲你確切地知道這個字符串看起來是什麼等)

String[] versionArray = new String[4]; 
String version = System.getProperty("java.version"); 
StringTokenizer st1 = new StringTokenizer(version,"."); 
versionArray[1] = st1.nextToken(); 
versionArray[2] = st1.nextToken(); 
StringTokenizer st2 = new StringTokenizer(st1.nextToken(),"_"); 
versionArray[3] = st2.nextToken(); 
versionArray[4] = st2.nextToken(); 

它之後在versionArray將與你的榜樣[ 「1」] [ 「6」] [ 「0」] [ 「18」],你可以做你這個比較...

+0

你的意思是System.getPerperty(「java.version」)。請把它改正。 –

+0

@JDeveloper呃,不,我的意思是'公共靜態字符串getProperty(字符串鍵)'指定[這裏](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System。 HTML) – nurgan