我正在尝试通过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不包含所有必需的依赖项(在三个类之外)。
对我所做错的任何帮助都将不胜感激!
答案 0 :(得分:2)
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假定您希望编译并将生成的类文件打包到JAR中。此外,还生成了一个MANIFEST.MF,它可以与命令行和Eclipse
不同修改强> 如果要执行具有多个JAR的应用程序,请检查:Setting multiple jars in java classpath
答案 1 :(得分:1)
您编译.java文件了吗?
构建.jar文件时,必须包含.class文件,这些文件是已编译的java文件。
有关构建jar文件的信息,请参阅文档: https://docs.oracle.com/javase/tutorial/deployment/jar/build.html
Eclipse将在后台编译源代码,并在jar文件中包含已编译的版本。 Eclipse还提供了一个包含源文件大小的选项。