jar 라이브러리 내에 압축 된 jar 라이브러리에서 premain-class를로드 할 수 있습니까? 내 라이브러리의ANT로 jar 라이브러리에서 java premain-class로드
Contets : 다음 설치를 I'have 것은 그러나 불행하게도 I "를 사용하는 경우
Manifest-Version: 1.0
Premain-Class: com.agentpackage.AgentClass
Class-Path: agent/myAgent.jar
:
# jar -tf myLibrary.jar
META-INF/
META-INF/MANIFEST.MF
agent/
agent/myAgent.jar
com/
com/package/
com/package/subpackage/
com/package/subpackage/A.class
com/package/subpackage/B.class
com/package/subpackage/C.class
이제 내 MANIFEST.MF에서 내가 좋아하는 뭔가를 사용하고 싶습니다
java.lang.ClassNotFoundException: com.agentpackage.AgentClass
FATAL ERROR in native method: processing of -javaagent failed
그것을이다 "-javaagent:myLibrary.jar
이 설정은 나에게 다음과 같은 오류 메시지를 제공합니다 어떻게 든 .jar 파일 내 premain-class에 액세스 할 수 있습니까?
myLibrary.jar에 대한 나의 (절단) ANT 빌드 파일 :
<jar destfile="myLibrary.jar" update="true">
<zipfileset dir="lib" includes="myAgent.jar" prefix="agent" />
<manifest>
<attribute name="Class-Path" value="agent/myAgent.jar" />
<attribute name="Premain-Class" value="com.agentpackage.AgentClass" />
</manifest>
</jar>
나는 다음을 수행 할 수 알고 :
<jar destfile="myLibrary.jar" update="true">
<zipgroupfileset dir="lib" includes="myAgent.jar" />
<manifest>
<attribute name="Premain-Class" value="com.agentpackage.AgentClass" />
</manifest>
</jar>
그러나 myAgent.jar의 내용이 MYLIBRARY 내에서 팽창됩니다 .jar 그리고 그게 내가 원하는 건 아니야. 어떤 도움을 주셔서 감사합니다.
미래에도 지원 될 수 있기를 바랍니다. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4648386 – Bogdan
또한 다음을 발견했습니다. http://docs.oracle.com/javase/tutorial /deployment/jar/downman.html'Class-Path 헤더는 JAR 파일 내의 JAR 파일이나 인터넷 프로토콜을 통해 액세스 할 수있는 클래스가 아니라 로컬 네트워크의 클래스 또는 JAR 파일을 가리 킵니다. JAR 파일의 JAR 파일에있는 클래스를 클래스 경로에로드하려면 사용자 정의 코드를 작성하여 해당 클래스를로드해야합니다. ' – domi