2013-05-14 6 views
-3

나는이 jar 파일 안에 services.jar 파일이 있고 패키지가 거의 없다. Java 클래스의 코드를 수정해야합니다..jar 파일에서 .java 파일을 수정하는 방법은 무엇입니까?

예 - services.jar services.jar 내부

패키지 - Filter.java - -이 코드를 편집하고 새 jar 파일을해야 할 필요 검색 패키지 내부

클래스 폴더의 유틸리티 검색.

안내해주세요.

+0

그냥 jar를 탐색하고 Jar 파일을 수동으로 업데이트하려면 winzip을 사용할 수 있습니다. –

+0

아마도 http://stackoverflow.com/questions/12057554/creating-a-jar-file-after-doing-some-modifications-to-it이 있으므로이 질문을 닫아야합니다. 유일한 대답은 나에게 좋을 것 같습니다. – lifus

+3

jar 파일 내부의 java 파일을 수정하려는 이유는 무엇입니까? 대신 클래스 파일을 업데이트해야합니다. – NullPointerException

답변

3

수정할 코드가 있으면 사용할 수 있습니다. 그렇다면 명령 줄에서 또는 winrar와 같은 도구를 사용하여 항아리를 추출해야합니다.

jar -xvf services.jar 

추출 된 디렉토리에 수정하거나 업데이트/클래스 파일을 교체하고 명령 행에서 다음 명령을 사용하여 병을 다시 :

jar -cvf services.jar 
+0

jar 파일을 제자리에서 갱신 할 수있는'-u' 옵션도 있습니다. 예제는 [이 답변] (http://stackoverflow.com/a/14244548/778118)을 참조하십시오. 그러나 다른 사람들이 언급했듯이 _.java_ 파일을 수정해도 컴파일 된 클래스 파일에는 영향을주지 않습니다. – jahroy

1

당신에게 여기에 명령 줄에서 항아리를 추출하는 명령입니다 java 파일을 갱신해서는 안됩니다. JAR 파일 대신 변경 내용

을 한 후 클래스 파일을 업데이트해야합니다 컴파일 된 자바 클래스

보관을위한 참조하십시오이 article

0

당신은 다른 위치에 jar 파일을 그림자 수해야하는 경우 그 앞에 클래스 경로에서. 그러나, 당신이하고있는 일을 이해하지 못하고 어떤 의존성을 놓친다면 NoClassDefFoundError을 얻게 될 것입니다.

클래스의 비헤이비어 중 일부를 수정해야하는 경우 AspectJ로 애스펙트를 만들 수 있습니다. 비헤이비어를 바꾸려면 Around 애스펙트를 사용할 수 있습니다.

관련 문제