Eclipse JAR 创建与 cmd 行 JAR 创建

Eclipse JAR creation vs. cmd line JAR creation

我正在尝试通过 cmd 行创建 JAR 文件,但相对于使用 Eclipse 创建的 JAR 文件编译它时遇到问题。

要使用命令行版本,我执行以下操作:

jar cf "myjar.jar" A.java B.java C.java

在我 运行 命令所在的目录中,只有这三个文件存在。

当我从 Eclipse 构建它时,我右键单击三个选定的文件。然后执行:导出 -> JAR 文件 -> 完成(压缩 JAR 的内容)。

大小差异非常明显,19 KB (cmd) 与 43 KB (Eclipse)。当我尝试使用命令行创建 JAR 时,我的应用程序失败了。我的猜测是命令行创建的 JAR 不包括所有必要的依赖项(三个 类 之外)。

对于我做错的任何帮助,将不胜感激!

JDK 的工具 JAR 只是一个 ZIP 压缩器,那么当你尝试时:

jar cf "myjar.jar" A.java B.java C.java

您实际上是在创建包含 3 个 java 源代码的 zip,您没有在编译代码。

你必须做到:

javac *.java
jar cf "myjar.jar" *.class

当您使用 Eclipse 生成它时,IDE 假设您要编译生成的 class 文件并将其打包到 JAR 中。此外,生成的 MANIFEST.MF 可能不同于命令行和 Eclipse

编辑: 如果你想用多个 JAR 执行一个应用程序,检查这个:Setting multiple jars in java classpath

您是否编译了您的 .java 文件?

构建 .jar 文件时,您必须包含 .class 个文件,这些文件编译 java 个文件。

有关构建 jar 文件的信息,请参阅文档: https://docs.oracle.com/javase/tutorial/deployment/jar/build.html

Eclipse 将在后台编译源代码并将编译后的版本包含在您的 jar 文件中。 Eclipse 还提供了一个选项来包含源代码,这在文件大小上有所不同。