code

항아리를 추출하고 다시 만들지 않고도 Jar / war에서 파일을 빠르게 삭제할 수있는 방법이 있습니까?

codestyles 2020. 8. 25. 08:04
반응형

항아리를 추출하고 다시 만들지 않고도 Jar / war에서 파일을 빠르게 삭제할 수있는 방법이 있습니까?


그래서 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를 참조 하십시오 . (해킹이라고 인정하지만 나를 위해 일했습니다.)

참고 URL : https://stackoverflow.com/questions/4520822/is-there-a-quick-way-to-delete-a-file-from-a-jar-war-without-having-to-extract

반응형