【发布时间】:2021-09-02 06:20:28
【问题描述】:
有没有办法在同一个 jar 文件中捆绑多个 jar,并确保其中只有一个主 jar 成为应用程序类路径的一部分,从而将这个完整的 jar 添加到它们的类路径中。 我的主 jar 中的代码将使用自定义类加载器来加载完整 jar 中其他 jar 中存在的类。 我还想为其他 jar 创建目录结构,以便我可以根据用例隔离 jar,并仅从完整 jar 内的目录中加载 jar。
感谢您对上述任何要求的任何帮助。谢谢。
【问题讨论】:
-
为什么?无论如何one-jar.sourceforge.net 可能有用。
-
@ThorbjørnRavnAndersen 如果我没记错的话 one-jar.sourceforge.net 允许您将主 jar 与 lib 文件夹中的依赖项捆绑在一起,当调用主 jar 的主类时,它会神奇地使用自定义类加载器来加载lib 文件夹中的类。如果我错了,请纠正。就我而言,我正在编写自己的自定义类加载器。
-
@pranjal 听起来是对的。您可能想详细解释为什么需要不同的东西。自己编写一个自定义类加载器并不难,那么您尝试解决的根本问题是什么?
-
您是否尝试根据某个配置设置更改应用程序的行为,而这不是运行时更改?如果是这种情况,您可以编写自己的自定义
URLClassLoader。如果是运行时更改,它会变得复杂。