내 항아리 안의 파일을 수정하고 싶습니다. 내 응용 프로그램에서 추출 및 재 조립없이이 작업을 수행 할 수 있습니까?
수정하려는 파일은 대부분 xml 기반의 구성 파일입니다.
내가 unjarring하지 않는 데 관심이있는 이유는 응용 프로그램을 unjar하면 launch4j로 래핑되어 .exe 파일을 다시 만들 수 없기 때문입니다.
내 항아리 안의 파일을 수정하고 싶습니다. 내 응용 프로그램에서 추출 및 재 조립없이이 작업을 수행 할 수 있습니까?
수정하려는 파일은 대부분 xml 기반의 구성 파일입니다.
내가 unjarring하지 않는 데 관심이있는 이유는 응용 프로그램을 unjar하면 launch4j로 래핑되어 .exe 파일을 다시 만들 수 없기 때문입니다.
답변:
다음 u
옵션을 사용할 수 있습니다.jar
Java Tutorials에서 :
jar uf jar-file input-file(s)
"추가되는 파일과 동일한 경로 이름을 가진 아카이브에 이미있는 모든 파일을 덮어 씁니다."
JAR 파일 업데이트를 참조하십시오 .
항아리 전체를 다시 만드는 것보다 훨씬 낫습니다. 프로그램 내에서 이것을 호출하는 것도 가능합니다. Java에서 명령 줄 실행 시도
Vim을 사용할 수 있습니다.
vim my.jar
Vim은 unzip
사용자 환경에서 압축 된 텍스트 파일을 편집 할 수 있습니다.
zip
변경 사항을 저장할 수있는 환경 이 필요 합니다. 답변 해주셔서 감사합니다!
많은 사람들이 말했듯이 JAR을 다시 만들지 않고는 JAR의 파일을 변경할 수 없습니다. Launch4J를 사용하면 더 나빠집니다. 일단 JAR을 변경하면 EXE를 다시 빌드해야합니다. 그러니이 길을 가지 마십시오.
일반적으로 구성 파일을 JAR에 넣는 것은 좋지 않습니다. 여기 내 제안이 있습니다. 미리 지정된 위치 (예 : 홈 디렉토리, \ Program Files \ 등)에서 구성 파일을 검색합니다. 구성 파일을 찾으면 사용하십시오. 그렇지 않으면 JAR에있는 것을 폴백으로 사용하십시오. 이렇게하면 미리 결정된 위치에 구성 파일을 작성하기 만하면 프로그램이이를 선택합니다.
이 접근 방식의 또 다른 이점은 소프트웨어를 업그레이드해도 수정 된 구성 파일을 덮어 쓰지 않는다는 것입니다.
이 도움이되는지 확실하지 않지만 추출하지 않고 편집 할 수 있습니다.
자세한 내용은 블로그 게시물을 확인하십시오. http://vinurip.blogspot.com/2015/04/how-to-edit-contents-of-jar-file-on-mac.html
dfa가 말한 내용을 확장하려면 jar 파일이 zip 파일처럼 설정되어 있기 때문입니다. 파일을 수정하려면 모든 항목을 읽고 변경할 항목을 수정 한 다음 항목을 jar 파일에 다시 써야합니다. 나는 전에 이것을해야했고, 그것이 내가 그것을 할 수있는 유일한 방법이었다.
편집하다
이것은 파일 스트림 인 내부에서 Java jar 파일 편집기를 사용하고 있습니다. 나는 그것을 할 수있는 방법이 있다고 확신합니다. 전체 병을 메모리로 읽고 모든 것을 수정 한 다음 파일 스트림에 다시 쓸 수 있습니다. zip 헤더의 ToC가 쓰기 시간에 정의되어야한다고 믿기 때문에 이것이 내가 7-Zip과 같은 유틸리티가하고 있다고 믿는다. 그러나 나는 틀릴 수 있습니다.
예, SQLite를 사용하면 jar 파일 내에서 데이터베이스를 읽거나 쓸 수 있으므로 추출한 다음 다시 jar로 만들 필요가 없습니다. 내 게시물 http://shoaibinamdar.in/blog/? p = 313
"jdbc : sqlite :: resource :"구문을 사용하면 jar 파일 내에서 데이터베이스를 읽고 쓸 수 있습니다.
TrueZip을 확인하십시오 .
가상 파일 시스템 API를 통해 원하는대로 정확히 수행합니다 (jar 파일 내에서 파일을 인라인으로 편집). 또한 중첩 된 아카이브 (jar 내부의 jar)도 지원합니다.
예를 들어 jar 파일을 추출하십시오. winrar 및 CAVAJ 사용 :
Cavaj Java Decompiler는 CLASS 파일에서 Java 소스 코드를 재구성하는 그래픽 프리웨어 유틸리티입니다.
필요한 경우 비디오 자습서가 있습니다 : https://www.youtube.com/watch?v=ByLUeem7680
Windows에서이 작업을 수행하는 가장 간단한 방법은 WinRAR을 사용하는 것입니다 .