在JAR中包含JAR会使类看不到jar内容

时间:2013-08-02 12:32:46

标签: java jar

我正在将jar文件和一个主类合并到一个jar中。问题是我的主类使用这些jar,如果它在一个jar中它只是抛出它找不到类定义。如何让班级在罐子里看到罐子?

1 个答案:

答案 0 :(得分:1)

Java Launcher$AppClassLoader不知道如何从Jar中的Jar加载类。您需要的是一个自定义类加载器,它知道如何从存档中的jar中加载类和资源,而不是从文件系统中的jar加载。

您可以查看one-jar,它允许您将Java应用程序及其依赖项Jars打包到一个可执行的Jar文件中。

JarClassLoader还可以从顶级JAR和顶级JAR中的JAR加载类,本机库和资源。

另一个解决方案(非常丑陋的解决方案)是在jar中爆炸JAR内容。