TIL

[TIL] jar파일 수정하고 다시 압축하여 배포하기

봄봄로그 2023. 5. 26. 18:44

시간을 꽤 많이 들여 찾으려 노력했던 일인데 너무나도 쉽게 해결돼버렸다. 

이걸두고 해결이라고 말하는게 맞나 싶은데... 당장 예정되어 있는 일정이 있어 일단 급하게 막아보았다. 이것도 TIL로 넣는게 맞나?... 아무튼 하나 또 배우긴 했다......

 

jar파일을 풀었다가 다시 압축하면 자꾸만 에러가 났다. MANIFEST.MF 파일의 문제는 해결되었는데, 그 파일에서 지정해준 main class (spring boot의 경우 boot main class) 를 찾지 못하는 에러...

 

<진행한 상황>
1. jar 파일을 압축해제한다 [ jar xvf jarfile.jar ]
2. 해제한 폴더들을 jar파일로 압축한다 [ jar cvf newName.jar ./META-INF/MANIFEST.MF ]
=> ./META-INF/MANIFEST.MF 이것을 붙이지 않으면 기동했을 때 에러로 MANIFEST가 없다고 나옴
3. 2번을 진행할 때 ./META-INF 경로에 MANIFEST.MF 파일은 이미 존재한다.
4. 만들어진 jar파일을 기동한다. [ java -jar newName.jar ]
5. 에러가 발생한다. [ 오류: 기본 클래스 org.springframework.boot.loader.JarLauncher을(를) 찾거나 로드할 수 없습니다 ]

 

그러다가 찾아보니 반디집으로 해결이 가능한 것을 알게되었다.

class 파일을 수정하는 것이 아니라 properties 파일만 수정하는 것이기 때문에! 

반디집에서 압축을 풀지 않고, 압축 미리보기 상태에서 수정 후 저장하면 된다.

 

테스트 : application.yml 파일에서 server.port만 수정해보고 터미널에서 기동해보면 반영된 것을 알 수 있다.