2
是否有可能从jar库中加载的jar库加载premain-class? I'have以下设置:我的图书馆的从jar库中加载java premain-class与ANT
Contets:
# 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内我想用这样的:但不幸的是,如果我“使用
Manifest-Version: 1.0
Premain-Class: com.agentpackage.AgentClass
Class-Path: agent/myAgent.jar
“此设置与-javaagent:myLibrary.jar
它给我以下错误信息:
java.lang.ClassNotFoundException: com.agentpackage.AgentClass
FATAL ERROR in native method: processing of -javaagent failed
是吗?以某种方式可能访问.jar文件中的premain-class?
我的(截)ANT建立myLibrary.jar文件:
<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 2012-04-16 09:42:33
此外,我发现这个:http://docs.oracle.com/javase/tutorial /deployment/jar/downman.html'Class-Path头指向本地网络上的类或JAR文件,而不是JAR文件中的JAR文件或通过Internet协议访问的类。要将JAR文件中的JAR文件中的类加载到类路径中,您必须编写自定义代码来加载这些类 – domi 2012-04-16 10:58:04