Java Eclipse:导出为JAR和导出为可运行JAR的区别

99

在eclipse中,将项目导出成JAR文件和将其导出成可运行的JAR文件有何区别?它们都可以运行,对于每种方式的优缺点是什么?

4个回答

103

可运行的jar包包含一个MANIFEST.MF文件,该文件定义了在运行jar包时要执行的主类。

非可运行的jar包仅是包含类库的jar包,可以将其添加到类路径中以便重用代码(它也包含清单文件,但没有主类)。


当我们将文件导出为jar而不是可运行的jar时,我们必须在manifest.mf中指定主类和库类路径。 - MR AND

22

使用标准的JAR文件时,运行JAR文件需要在命令行上指定具有主方法的类。使用可运行的JAR文件时,会有一个包含该信息的清单文件,因此您只需键入 java -jar myRunnable.jar 或直接双击即可。


20

可运行的jar文件是一个包含嵌入式清单文件的jar文件,其中包含“Main-Class:”声明。必须定义“Main-Class”以便Java运行时知道在运行jar文件时调用哪个类。如果jar文件不包括带有“Main-Class:” 的清单,则它不被视为“可运行的jar”- 它只是Java代码库。

我猜这可能与Eclipse如何导出jar文件有关,但不能确定。

请参阅此链接以获取更多信息:http://www.skylit.com/javamethods/faqs/createjar.html


0
在我的情况下,当我在 manifest.mf 中指定了所有主类和所有库路径目录时,我曾经将其导出为 jar 文件。如果许多应用程序都使用相同的库,则无需为每个 jar 导出共享库。这使得运行 jar 更快。但是,由于不同服务器类路径中的配置问题,有时无法访问库,因此在这种情况下,导出可运行的 jar 是有意义的,这会使文件执行速度变慢且更大。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接