그래서 jar / war 파일에서 파일을 제거해야합니다. 나는 “jar -d myjar.jar file_I_donot_need.txt”와 같은 것이 있기를 바라고 있었다.
하지만 지금 당장 내 Linux 명령 줄 (WinRAR / Winzip 또는 이에 상응하는 Linux를 사용하지 않고)에서이 작업을 수행하는 유일한 방법은 다음과 같습니다.
- “jar -xvf”를 실행하고
전체 Jar 파일을 추출 합니다. - 필요하지 않은 파일 제거
- “jar -cvf”를 사용하여 jar 파일을 Rejar합니다.
더 짧은 길이 있다고 말해주세요.
답변
zip -d file.jar unwanted_file.txt
jar는 결국 zip 파일입니다. 압축 해제 / 재 압축보다 확실히 훨씬 빠릅니다.
답변
Java에서는 삭제할 항목을 제외하고 jar의 모든 항목을 복사 할 수 있습니다. 즉, 복사본을 만들어야하지만 개별 파일을 만들 필요는 없습니다.
당신은 이것을 할 수 있습니다
- 새 항아리를 만듭니다.
- 당신이 가진 항아리를 반복
- 한 jar에서 다른 jar로 항목을 복사하고 원하는 파일을 건너 뜁니다.
- 원하는 경우 원래 병을 닫고 교체하십시오.
답변
서명 된 jar의 서명을 해제하기 위해 파일을 삭제하려는 경우 .RSA 파일 크기를 0으로 만들 수 있습니다. 이것은 단지 jar u
. https://stackoverflow.com/a/24678645/653539를 참조 하십시오 . (해킹이라고 인정하지만 나를 위해 일했습니다.)