Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jar中的java库_Java_Jar_Classpath_Manifest - Fatal编程技术网

jar中的java库

jar中的java库,java,jar,classpath,manifest,Java,Jar,Classpath,Manifest,我已经创建了mytest.jar文件,其中的库也包含近30个库文件。 是否可以将所有库jar放在mytest.jar中,以便只分发1个jar? 可以使用清单来完成吗? 谢谢。使用标准Java类加载器无法从JAR中的JAR加载类。然而,使用自定义类加载器是可能的,这就是示例的工作方式 政府采取了不同的做法。它将解压您所依赖的所有jar,并将它们(连同您自己的类)打包到一个大jar中。然后可以使用普通的类加载器。这更简单,也可以不用maven使用。通常使用jar重新打包工具,如jarjar,用于此目

我已经创建了mytest.jar文件,其中的库也包含近30个库文件。 是否可以将所有库jar放在mytest.jar中,以便只分发1个jar? 可以使用清单来完成吗?
谢谢。

使用标准Java类加载器无法从JAR中的JAR加载类。然而,使用自定义类加载器是可能的,这就是示例的工作方式


政府采取了不同的做法。它将解压您所依赖的所有jar,并将它们(连同您自己的类)打包到一个大jar中。然后可以使用普通的类加载器。这更简单,也可以不用maven使用。

通常使用jar重新打包工具,如
jarjar
,用于此目的。

不是现成的。但是,它提供了一个解决方案。它适用于独立的应用程序,这是我假设你正在做的


如果你正在制作一个applet,那么一个Jar将无法工作。

在使用
maven shade plugin
或将所有Jar解包并重新打包为一个Jar时需要格外小心,因为两个Jar可能有公共文件,一个Jar的内容可能被另一个Jar覆盖shade plugin允许重命名包(即“shading”)为了避免这种情况,你必须小心。有人创建了这个软件包真是太神奇了。“我曾经想过这样做一次,很高兴知道是别人创造了它。”洛伦佐补充说,这里是链接:请注意,这是一个java约束,您最好将这些JAR分离并添加到类路径中。拆分/重新打包API JAR的可能重复可能会违反分发许可证。如果这是针对桌面应用程序,那么这是解决启动应用程序整个问题的更好方法。它是面向最终用户的“一键式”解决方案,更棒的是,它不仅可以根据用户的需要提供额外的jar,还可以在任何jar发生变化时提供自动更新!