我正在将jar文件和一个主类合并到一个jar中。问题是我的主类使用这些jar,如果它在一个jar中它只是抛出它找不到类定义。如何让班级在罐子里看到罐子?
答案 0 :(得分:1)
Java Launcher$AppClassLoader
不知道如何从Jar中的Jar加载类。您需要的是一个自定义类加载器,它知道如何从存档中的jar中加载类和资源,而不是从文件系统中的jar加载。
您可以查看one-jar,它允许您将Java应用程序及其依赖项Jars打包到一个可执行的Jar文件中。
JarClassLoader还可以从顶级JAR和顶级JAR中的JAR加载类,本机库和资源。
另一个解决方案(非常丑陋的解决方案)是在jar中爆炸JAR内容。