JAR 파일 소스 수정하고 다시 압축하는 방법

jar은 여러 개의 Java 클래스 파일, 관련 리소스, 메타데이터를 포함하는 압축 파일입니다. 안에 있는 특정 클래스의 소스를 수정하고 다시 사용하려면 jar의 압축을 해제하고 수정한 java 소스를 다시 컴파일하고 jar 파일로 다시 묶으면 됩니다.

저는 개발이 주 업무가 아니기 때문에 이클립스 같은 무거운 툴을 이용하는 것보다는 간단하게 노트패드++로 소스를 수정하고 다시 컴파일 하는 방식을 주로 사용합니다.

1. JAR 파일 압축 해제

jar 파일을 수정하기 위해 우선 압축을 해제합니다. 반디집 같은 상용 툴로도 풀 수 있습니다.

jar 파일 소스 수정 (7)

2. class 파일 java로 역컴파일

대부분의 경우 jar 안에는 java 파일은 없고 컴파일한 class 파일만 있습니다. 소스를 수정하려면 역컴파일을 해야 합니다.

jd-gui 툴을 사용하면 간단하게 해결됩니다. 툴이 없으시면 자바 Jar 파일 소스 보는 방법 을 참고해주세요.

jar에서 역컴파일할 class를 클릭하고 ctrl + s 로 저장하면 java 파일로 저장할 수 있습니다.

jar 파일 소스 수정 (3)

3. Java 소스 수정

java의 소스를 수정합니다.

jar 파일 소스 수정 (4)

4. 수정한 Java 컴파일

javac를 이용해 수정한 java를 다시 컴파일 합니다.

C:\Users\user\Desktop\helloworld>javac HelloWorld.java

5. JAR 파일 다시 생성

새로운 수정 사항을 반영했으니 다시 jar 파일로 묶으면 완료입니다.

jar의 홈 경로에서 cmd를 켜고 jar cvf [파일명.jar] * 형태로 입력합니다.

C:\Users\user\Desktop\helloworld>jar cvf HelloWorld.jar *
Manifest를 추가함
추가하는 중: HelloWorld.class(입력 = 480) (출력 = 319)(33%를 감소함)
추가하는 중: HelloWorld.java(입력 = 407) (출력 = 242)(40%를 감소함)
META-INF/ 항목을 무시하는 중
META-INF/MANIFEST.MF 항목을 무시하는 중

확인해보면 jar 파일로 정상적으로 묶인 것을 볼 수 있습니다.

jar 파일 소스 수정 (6)

댓글 남기기