2012-08-28 3 views
1

자바 버전의 유효성을 검사해야합니다. 내가 사용한다자바 버전 확인

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

예를 들어 JRE가 설치되어 있다는 것을 아는 것이 간단하다. 1.6.0_18 버전? 나는 자바 버전의 명명 규칙이 표준이라고 생각한다.

+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을 "."로 구분합니다. "_"로 구분되는 마지막 하위 문자열 하나보다 더 큽니다. 바지를 가져가 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 uhm, 아니요. 지정된 [here] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System)의'public static String getProperty (String key)'는 아닙니다. HTML) – nurgan