将库提取和打包到 jar 文件中的区别
2022-08-31 13:04:27
我想知道从eclipse中提取和打包库到jar文件中与可运行的jar文件创建之间的区别。
如果我的程序(可运行的jar)使用其他需要这些外部库(jar)的类,我应该选择什么?
我想知道从eclipse中提取和打包库到jar文件中与可运行的jar文件创建之间的区别。
如果我的程序(可运行的jar)使用其他需要这些外部库(jar)的类,我应该选择什么?
如果要将 jar 放入生成的 jar 文件中,可以使用打包方法。例如,如果您使用的是Apache库或其他一些第三方jar,您可能希望将这些jar保留在生成的jar中。在这种情况下,请使用包装。“将所需的库打包到 jar 文件中”选项将包的类放入生成的文件中,并且此包位于生成的 jar 文件的根目录下。由于 Eclipse 的 jar 加载器类,此选项还会在大小方面创建一个更大的 jar 文件。org.eclipse.jdt.internal.jarinjarloader
提取所需的库将导致按照包命名约定将第三方库的类放入jar文件中,例如,如果您打开jar内容,则可以在包下看到一些类。org.apache..
主类条目在这些 jar 文件的文件之间是不同的:MANIFEST.MF
打包所需库时的主类条目:
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
提取所需库时的主类条目:
Main-Class: YourMainClass
对于我的使用,主要区别在于打包的JAR文件作为单独的项目完整地包含在内,因此保留了它们的版权信息和签名数据。
如果选择提取,类文件将从其原始上下文中拉出并存储,就好像您发起它们一样,因此可能违反某些许可证条件,尽管在这种情况下最终JAR的大小会更小。在这种情况下,Eclipse也会警告您有关许可的问题。
因此,如果使用第三方JAR库,则始终打包是专业的。