2011-11-29 3 views
0

CDC Foundation 1.1 및 jsr 169를 사용하여 임베디드 장치 용 DB를 사용하는 Java 응용 프로그램을 개발 중입니다. jsr169 jar 파일은 부트 스트랩 로더에 의해로드해야 (전통적인 -classpath 옵션을 사용하지 않는) 응용 프로그램을 실행하기 위해Java/CVM - 부트 클래스 경로

을, 나는 다음과 같은 명령

cvm -Xbootclasspath/a:/mylibs/jsr169.jar -cp $CLASSPATH -jar myapp.jar 

을 사용하고 그러나 어디 선가 읽고 -Xbootclasspath 옵션이 표준이 아니라면, 그것을 사용하는 것이 위험할까요? 그렇다면 jsr169.jar을 어디에 두어 부팅 클래스 로더가 직접로드 할 수 있습니까? 다른 벤더의 JVM은이를 지원되지 않을 수도 있습니다

감사 만 사람

엘리

답변

1

-Xbootclasspath는 표준 자바 옵션이 아닙니다.

또 다른 위험은 JRE의 표준 클래스를 재정의하는 데 사용할 수 있다는 것입니다. 응용 프로그램이 이러한 재정의 된 클래스에 의존하는 경우 다른 JVM 또는 동일한 JVM의 새 버전에서 실행하는 데 문제가있을 수 있습니다. 표준 클래스를 오버라이드 (override) 자바 SE 문서에 따르면

는 자바 라이센스를 나누기 다음을 위반하는 것입니다 배치하지 말아 rt.jar 내의 클래스를 오버라이드 (override) 할 목적으로이 옵션을 사용 Oracle documentation에 따라, "응용 프로그램 Java 2 Runtime Environment 바이너리 코드 라이센스. ". 하지만 CVM의 설명서에는 그러한 경고가 표시되지 않습니다.

CDC에는 JDBC 클래스가 포함되어 있지 않으므로 안전하다고 생각합니다.

+1

Bootclasspath를 수정해도 아무 것도 손상되지 않습니다. _appending_ ('-Xbootclasspath/a : path')를 통해 bootclasspath를 수정하는 응용 프로그램의 배포도 제한되지 않습니다. –