2009-11-13 2 views
0

은 (SnowLeopard에 적어도), java 명령은 무조건 클래스 패스에 추가 항아리를 추가 .MacOS에서 깨끗한 Java VM을 얻는 방법?</p> <p>/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/.compatibility/14compatibility.jar : 맥 OS에

이 jar에는 unrenamed 버전의 Apache Xerces + Xalan이 포함되어 있습니다. 특히 서블릿 컨테이너의 웹 응용 프로그램에서 이러한 라이브러리의 다른 버전을 명시 적으로 사용하려는 응용 프로그램의 경우 혼란스러운 결과를 초래할 수 있습니다.

MacPorts에서 OpenJDK를 사용하여이 문제를 피하려고했지만 MacPorts 빌드가 실패했습니다.

누군가 JAR 파일을 삭제하는 명백한 폭력 이외의 다른 방법을 사용 했습니까? 하나의 블로그에서 권장되는 내용이지만 일부 Apple 구성 요소 또는 다른 구성 요소가 없으면 실패 할까 봐 걱정됩니다.

답변

1

14compatibility.jar의 이름을 변경 한 후 아무런 문제가 없었습니다. 아마도 당신은 그것을 시도 할 수 있습니다. 끔찍한 일이 생기면 원래 위치로 되돌릴 수 있습니다.

1

궁극의 트럼프 카드는 여기 -Xbootclasspath/p : foo.jar입니다. 이렇게하면 .jar를 부트 스트랩 클래스 로더 앞에 추가 할 수 있습니다. 이것은 제가 상상할 수있는 모든 것보다 우선해야합니다. 예를 들어, 이런 식으로 java.lang.String을 대체 할 수 있습니다.

+0

충분하지만 공정 할 항아리가 없습니다. 나는이 물건을 없애고 다른 버전으로 바꾸지 않고 싶다. – bmargulies