从你们所有人的一点帮助... 我想将一个简单的java程序转换成jar,但似乎没有发生任何事情。 我有2个文件:Tester.java,Tester.Class。 然后我用以下命令行:-cvf创建Tester.jar Tester.class如何将Java程序转换为jar?
.jar文件,但似乎没有任何工作
罐子。 我错过了什么?
从你们所有人的一点帮助... 我想将一个简单的java程序转换成jar,但似乎没有发生任何事情。 我有2个文件:Tester.java,Tester.Class。 然后我用以下命令行:-cvf创建Tester.jar Tester.class如何将Java程序转换为jar?
.jar文件,但似乎没有任何工作
罐子。 我错过了什么?
要在你创建你需要执行
java -cp Tester.jar your.package.Main
执行罐子一种更加简便的jar文件运行的程序是要能够做到
java -jar Tester.jar
也就是说,然而,要求您在清单文件中指定主要类,该清单文件应包含在jar文件中:
把
Manifest-Version: 1.2
Main-Class: your.package.Main
在manifest.txt
而创建的jar:
jar cvfm Tester.jar manifest.txt Tester.class
+1,非常清晰简洁的基本解释 – Jonik 2010-05-22 09:50:45
@aioobe如果我只使用一个不在包中的简单类,我该怎么办? – pharaon450 2014-06-27 17:49:39
和我的回答一样,没有'your.package.',我想。 – aioobe 2014-06-27 20:58:40
你的命令将创建一个jar文件。您可能需要设置Main-Class manifest header。
马修•富兰琛评论answered,你需要有一个“清单文件“,并且应该包含Main-Class
头指出哪个是jar中的主要类,以执行exec UTE。 The answer by aioobe完美地说明了最简单的方法。
但不是这样做,总是“手动”,我建议你看看在构建工具,如Apache Ant(或Maven,但是这可能有点难以上手),其非常常用于自动化这些构建序列。
使用Ant,你会创建一个这样的“构建文件”(最常见的命名build.xml
):
<project name="Tester">
<target name="build"
description="Compiles the code and packages it in a jar.">
<javac srcdir="src" destdir="classes" source="1.6" target="1.6"/>
<jar destfile="Tester.jar">
<fileset dir="classes"/>
<manifest>
<attribute name="Main-Class" value="com.example.Tester"/>
</manifest>
</jar>
</target>
</project>
现在,调用ant build
将编译代码,并在“Tester.jar”打包,该也将包含正确类型的清单标题,以便您可以使用java -jar Tester.jar
运行它。 (请注意,此示例假定您的源位于“src”目录中,与您运行命令的位置相关。当然你还需要安装Ant。)
如果你决定试用Ant,它的official manual将非常有用(特别是Ant的“任务”列表,例如显示你可以给的选项具体任务如javac
或jar
)。
我建议使用一些像Netbeans,Eclipse,IntelliJ IDEA这样的IDE并专注于您的编程(点击构建yor程序)。
@Matthew,我想这可能是OP想要的。 (设置Main-Class,你可以直接从jar中运行程序。)你的评论可以很好地作为实际的答案。 – Jonik 2010-05-22 08:52:56