将库解压打包成jar文件的区别

新手上路,请多包涵

我想知道从 eclipse 中提取和打包库到 jar 文件与可运行的 jar 文件创建之间的区别。

如果我的程序(可运行的 jar)使用其他需要这些外部库(jar)的类,我应该选择什么?

原文由 Arian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 409
2 个回答

如果你想把 jar 放到你生成的 jar 文件中,你可以使用 packaging 方法。例如,如果您使用的是 Apache 库或其他一些第 3 方 jar,您可能希望将这些 jar 保存在生成的 jar 中。在这种情况下,请使用包装。 “将所需的库打包到 jar 文件中” 选项将 org.eclipse.jdt.internal.jarinjarloader 包的类放入生成的文件中,这个包就在生成的 jar 文件的根目录下。由于 Eclipse 的 jar 加载程序类,此选项还会创建一个更大的 jar 文件。

提取所需的库将按照包命名约定将第三方库的类放入您的 jar 文件中,例如,如果您打开 jar 内容,您可以在 org.apache.. 包下看到一些类。

这些 jar 文件的 MANIFEST.MF 文件之间的主类条目不同:

打包 所需库时的主类入口:

 Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

提取 所需库时的主类入口:

 Main-Class: YourMainClass

原文由 Juvanis 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于我的使用,主要区别在于 打包 的 JAR 文件作为一个独特的项目完整地包含在内,因此保留了它们的版权信息和签名数据。

如果您选择 extract ,类文件会从它们的原始上下文中提取出来并像您创建它们一样存储,因此可能会违反某些许可条件,尽管在这种情况下最终 JAR 的大小会更小。在这种情况下,Eclipse 也会警告您有关许可的问题。

所以,如果使用第三方JAR库,专业的总是 打包.

原文由 MikeW 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题