2012-08-25 4 views
0

rt.jar에 클래스 파일을 추가하고 싶습니다. 내가 어떻게 할 수 있니?rt.jar 파일을 업데이트하는 방법은 무엇입니까?

+9

Noooooo !!!! 하지 마 !!!!!! – paulsm4

+4

단지 jar 파일이기 때문에'jar' 도구의'u' 옵션을 사용하여 업데이트 할 수 있습니다. 그러나 절대로 이것을해서는 안됩니다. 당신이 플랫폼을 이해하지 못한다는 강한 신호라고 생각하십시오. – erickson

답변

1

업데이트하지 마십시오. 왜 그것을 업데이트하고 싶습니까?

어쨌든 업데이트하고 싶다면, 한 가지 방법을 알고 있습니다. winrar에서 jar 파일을 열고 업데이트 된 .class 파일을 archive에 붙여 넣을 수 있습니다. 하지만 항아리가 불일치 할 수도 있습니다. 자신의 책임하에 수행하십시오.

jar uf jar-file input-file(s) 

세부 사항에 대한 링크를 참조하십시오 :

java.sun.com/docs/books/tutorial/deployment/jar/update.html

1

당신은이 명령을 사용할 수 있습니다.

당신의 rt.jar이 무엇을 알아야 할 모든의

첫째가 무엇 :

의 rt.jar는 자바 런타임에 필요한 모든 클래스가 들어있는 항아리입니다.

자바 프로그램의 모든 항아리와 클래스는 자바 가상 머신에 의해 실행됩니다 따라서 그것은 당신이 당신의 자바 프로그램을 실행하는 방법을 알 필요가 있음을 알고 이제 이름 RT의 .jar

입니다.

코드를 보면 알 수 있듯이 &은 Java 런타임에서 사용되는 rt.jar과 완전히 별개이므로 그대로 사용해야합니다.

일부 기능이 필요한 경우 병에 추가해야합니다.

5

귀하의 질문은 당신이 자바 플랫폼의 일부 오해가 표시

1

rt.jar을 업데이트하는 가장 좋은 방법은 Java 용 최신 버전을 설치하는 것입니다. ;)

새 패키지에 고유 한 클래스를 추가하려면 클래스 경로에있는 jar에 추가하면됩니다. 이것은 기존 클래스를 변경하는 것보다 바람직합니다.

유일한 옵션은 기존 클래스를 변경하는 경우 부트 클래스 경로 앞에 추가하는 jar 파일에 "patch"를 만들거나 lib/endorsed 디렉토리에 jar 파일을 추가 할 수 있습니다. 나는 당신 자신의 테스트만을 위해 생산 코드를 위해 이것을하지 않을 것이다.

0

나는 u 및 0 (즉, 0) 옵션을 사용하여 jar.exe를 시도했으며 원본 rt.jar 파일과 가장 유사한 것을 얻었지만 JDK의 JRE의 rt.jar를 업데이트 한 경우에는 문제가 있습니다. 업데이트 후 컴파일 및 jarring. 왜 그런지 모르겠다! JRE를 사용하여 프로그램을 실행하기 만하면됩니다.

또한 -Xbootclasspath/p를 시도했지만 작동하지 못했습니다.

Replace a class within the Java class library with a custom version에서 보았습니다. 제대로 수행하는 방법을 알아낼 수는 있지만 고객에게 변경된 rt.jar을 배포하는 데 법적 문제가 있음을 확인했습니다. 그래서 그 페이지에서 조언을 받아 자바 에이전트를 만들 계획입니다. 그것은 분명히 합법적이며 작동합니다.

rt.jar을 수정하려는 이유 중 하나는 JDK에 -g 옵션과 함께 제공되는 소스를 컴파일 한 후 디버깅 정보를 추가하는 것입니다. 하나는 패치를 적용 할 수도 있습니다.물론 이것은 자신이 사용하기위한 것입니다.

관련 문제