罐子里面的jar类加载和方法执行

时间:2012-08-28 00:23:17

标签: java classloader

我在课程加载方面遇到了一些小问题。我有一个jar说abc.jar,在那个jar下面还有另一个叫做libs / cde.jar的jar。我在那个使用cde.jar的jar中编写了一个类。我打包了abc.jar,并检查了依赖jar是否正确打包在/libs/cde.jar下。

但是,当我尝试加载jar(abc.jar)并执行依赖于cde.jar的类时,它找不到依赖的cde.jar。关于我怎么做的任何指针?我不能使用像OneJar等其他jar加载器。如果可能的话,我必须使用纯java类加载。我尝试使用" file://// C:/abc.jar!/libs/cde.jar"将它放在类路径中。没有任何成功

由于 Masti

1 个答案:

答案 0 :(得分:4)

默认情况下,Java不能处理嵌入式Jars(即Jars中的Jars)

如果你真的想要这种行为,你应该看看OneJar

否则,您需要在外部保留依赖Jars,并通过其Class-Path文件中的父Jar Manifest属性指定依赖关系