Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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
Java 我应该何时将所需库提取/打包到生成的JAR中?_Java_Eclipse_Executable Jar - Fatal编程技术网

Java 我应该何时将所需库提取/打包到生成的JAR中?

Java 我应该何时将所需库提取/打包到生成的JAR中?,java,eclipse,executable-jar,Java,Eclipse,Executable Jar,解释如果分别选择每个选项会发生什么 我不明白的是,什么时候会推荐一个选项高于另一个。将所需库提取到JAR中-从应用程序使用的库中提取实际的.class文件,并将这些.class文件放在可运行的JAR中。因此,runnable JAR不仅包含应用程序的.class文件,还包含应用程序使用的所有库的.class文件。 如果JAR是分开的,那么用户只需要下载包含应用程序代码的JAR,而不是一个包含应用程序代码和所有库代码的大型JAR。 如果更新应用程序,则用户必须下载更多数据才能更新应用程序。 1)

解释如果分别选择每个选项会发生什么


我不明白的是,什么时候会推荐一个选项高于另一个。

将所需库提取到JAR中-从应用程序使用的库中提取实际的.class文件,并将这些.class文件放在可运行的JAR中。因此,runnable JAR不仅包含应用程序的.class文件,还包含应用程序使用的所有库的.class文件。 如果JAR是分开的,那么用户只需要下载包含应用程序代码的JAR,而不是一个包含应用程序代码和所有库代码的大型JAR。 如果更新应用程序,则用户必须下载更多数据才能更新应用程序。 1) 将所需库打包到JAR中-将库的实际JAR文件放入可运行的JAR中。通常,JVM无法加载JAR文件中的JAR文件。但是Eclipse向可运行JAR中添加了特殊类以实现这一点。
2) 将所需库复制到JAR旁边的子文件夹中-使库JAR与可运行JAR完全分离,因此,runnable JAR将只包含应用程序的.class文件。

将所需库提取到JAR中-从应用程序使用的库中提取实际的.class文件,并将这些.class文件放入runnable JAR中。因此,runnable JAR不仅包含应用程序的.class文件,还包含应用程序使用的所有库的.class文件。 如果JAR是分开的,那么用户只需要下载包含应用程序代码的JAR,而不是一个包含应用程序代码和所有库代码的大型JAR。 如果更新应用程序,则用户必须下载更多数据才能更新应用程序。 1) 将所需库打包到JAR中-将库的实际JAR文件放入可运行的JAR中。通常,JVM无法加载JAR文件中的JAR文件。但是Eclipse向可运行JAR中添加了特殊类以实现这一点。
2) 将所需库复制到JAR旁边的子文件夹中-使库JAR与可运行JAR完全分开,这样可运行JAR将只包含应用程序的.class文件。

您所说的一切都可以在本网站上找到。我想知道的是什么时候我应该选择提取所需的库,什么时候我应该选择打包所需的库。我排除了将所需库复制到问题子文件夹中的选项。您所说的一切都可以在此网站上找到。我想知道的是什么时候我应该选择提取所需的库,什么时候我应该选择打包所需的库。我从问题中排除了将所需库复制到子文件夹的选项。“胖”jar的缺点是,如果您在同一个名称空间中拥有资源(跨多个jar),它们将发生冲突。您还必须考虑如何更新应用程序。当你可以下载不同的JAR时,下载整个应用程序真的值得吗?如果您工作的环境中,不同的应用程序使用相同的库jar,那么最好单独维护它们。当你考虑到本地包装,其中许多可以“包含”罐子,一个胖罐子开始失去它的吸引力(IMHO)问题的一部分是它的观点。有些人只是“喜欢”胖罐子,有些人不喜欢,原因不多。你必须了解自己对项目的利弊,看看什么最适合你和项目generally@MadProggrammer问题是,我以前从未导出过项目。我知道我不想“将所需库复制到生成的JAR旁边的子文件夹中”。至于其他两个选项,我可以从其他问题中看出Eclipse对每个选项所做的不同。我不明白的是,每个选项的最终结果是否存在影响我决策的功能差异。例如,选项什么时候不起作用?什么时候期权会带来优势?那会有什么好处呢?偏好是一回事,那么实际原因呢?我看不出两者之间有“巨大”的区别。诚然,您读取的是一个文件,而不是多个文件,因此“可能”有一点优势,我没有费心亲自对其进行基准测试。如果您在动态环境中操作(自己加载jar),那么胖jar就没有多大优势。同样,如果您使用某种元数据查找机制来配置应用程序的某些部分(加上动态类加载),那么您将遇到胖jar的问题(因为资源将被覆盖)“胖”jar的缺点是,如果您在同一名称空间内拥有资源(跨多个jar),它们将发生冲突。您还必须考虑如何更新应用程序。当你可以下载不同的JAR时,下载整个应用程序真的值得吗?如果您工作的环境中,不同的应用程序使用相同的库jar,那么最好单独维护它们。当你考虑到本地包装,其中许多可以“包含”罐子,一个胖罐子开始失去它的吸引力(IMHO)问题的一部分是它的观点。有些人只是“喜欢”胖罐子,有些人不喜欢,原因不多。你必须了解自己对项目的利弊,看看什么最适合你和项目generally@MadProggrammer问题是,我以前从未导出过项目。我知道我不想“将所需库复制到生成的JAR旁边的子文件夹中”。至于其他两个选项,我可以从其他问题中看出Eclipse对每个选项所做的不同。我不明白的是,e中是否存在功能性差异