【发布时间】:2011-06-25 20:55:42
【问题描述】:
eclipse中导出为JAR文件和导出为Runnable JAR文件有什么区别?他们不是都可以运行的吗?各有什么优缺点?
【问题讨论】:
eclipse中导出为JAR文件和导出为Runnable JAR文件有什么区别?他们不是都可以运行的吗?各有什么优缺点?
【问题讨论】:
可运行的 jar 包含一个 MANIFEST.MF 文件,该文件定义了运行 jar 时要执行的 Main 类。
不可运行的 jars 只是类库,可以添加到类路径中以便重用代码(它还包含清单文件,但那里没有主类)
【讨论】:
可运行的 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
【讨论】:
使用标准 JAR 文件,您必须在运行 jar 时在命令行中指定带有 main 方法的类。对于可运行的 JAR,有一个清单文件将保存该信息,因此您可以输入 java -jar myRunnable.jar,或直接双击它。
【讨论】:
就我而言,当我拥有 manifest.mf 中指定的所有主类和所有库路径目录时,我曾经将其导出为 jar。如果许多应用程序使用相同的库,则无需为每个 jar 导出共享库。它使运行 jar 更快。但是,很多时候由于不同服务器类路径中的配置问题无法访问库,在这种情况下,导出可运行的 jar 文件是有意义的,这会使文件执行速度慢而且很大。
【讨论】: