2012-04-19 4 views
1

Java에서 jar 파일을 프로그래밍 방식으로 생성하려고합니다. 이것은 입력 jar 파일이 난독 화되지 않은 경우에 잘 작동합니다. input.getManifest() 반환 널 (null)Java - getManifest() 문제 : 첫 번째 항목이 아닙니다.

JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/obfuscated_jar.jar")); 
JarOutputStream output = new JarOutputStream(new FileOutputStream("generated_jar.jar"), input.getManifest()); 

라인 : 내가 상 난독를 사용하는 경우, 첫 번째 항목이 더 이상 매니페스트, 그래서 새 파일을 생성 할 수 없습니다 ... 여기

내 코드입니다 왜냐하면 그 매니 페스트가 처음에는 없기 때문입니다.

일부 검색을 수행했으며 JarInputStream의 알려진 문제인 것으로 보입니다. 그래서 여기 내 질문입니다 : 그것을 해결할 수 있습니까? 내 자신 만의 getManifest 메소드를 작성하는 것과 비슷합니까?

답변

0

마지막으로, 나는 그것을 만드는 방법을 발견했습니다.

내가 내 주요 단지로 내 파일 MANIFEST.MF을 저장하고이 경우 input.getManifest()

Manifest mf = new Manifest(); 
mf.read(getClass().getResourceAsStream("/lib/manifest.mf")); 

를 대체하기 위해 해당 코드를 사용, 나는 obfuscated_jar.jar에서 manifest.mf를 추출 내 주요 jar 파일의 lib 폴더에 붙여 넣습니다 .

아마도 가장 좋은 방법은 아니지만 효과가 있습니다.

누군가에게 도움이되기를 바랍니다.

관련 문제