在导出为JAR文件和导出为Runnable JAR文件之间,eclipse有什么区别?他们都不是可以运行的吗?每个人的利弊是什么?
答案 0 :(得分:94)
runnable jar包含一个MANIFEST.MF文件,该文件定义了jar运行时要执行的Main类。
不可运行的jar只是类的库,可以添加到类路径中以便重用代码(它还包含清单文件,但不包含主类)
答案 1 :(得分:20)
runnable jar是一个jar文件,它有一个包含“Main-Class:”声明的嵌入式Manifest文件。必须定义“Main-Class”,以便java运行时知道jar“运行”时要调用的类。如果jar不包含带有“Main-Class:”的清单,则它不被视为“可运行的jar” - 它只是一个Java代码库。
我猜这是Eclipse导出jar的方式不同,但不是100%肯定。
有关详细信息,请参阅此链接:http://www.skylit.com/javamethods/faqs/createjar.html
答案 2 :(得分:14)
使用标准JAR文件时,必须在运行jar时在命令行上使用main方法指定类。使用可运行的JAR,有一个清单文件可以保存该信息,因此您只需键入java -jar myRunnable.jar
,或者只需双击它即可。
答案 3 :(得分:0)
就我而言,当我在manifest.mf中指定了所有主类和所有库路径目录时,我通常会将其导出为jar。如果许多应用程序使用相同的库,则不必为每个jar导出共享库。它使jar的运行速度更快。但是,由于不同服务器类路径中的配置问题,很多时候无法访问库,在这种情况下,导出可运行的jar很有意义,这会使文件执行缓慢且变大。