0

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

4

1 回答 1

1

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

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

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

另一种解决方案(非常丑陋的解决方案)是在您的 jar 中分解 JAR 内容。

于 2013-08-02T12:43:58.087 回答