你们的帮助...... 我试图将一个简单的java程序转换为jar,但似乎没有发生任何事情。 我有2个文件:Tester.java,Tester.Class。 然后我使用了这个命令行:
jar -cvf Tester.jar Tester.class
.jar文件已创建,但似乎没有任何效果。 我错过了什么?
答案 0 :(得分:13)
要在您创建的jar文件中运行程序,您需要执行
java -cp Tester.jar your.package.Main
执行jar的更方便的方法是能够执行
java -jar Tester.jar
但是,这要求您在清单文件中指定main-class,该文件应该包含在jar文件中:
把
Manifest-Version: 1.2
Main-Class: your.package.Main
并创建jar:
jar cvfm Tester.jar manifest.txt Tester.class
答案 1 :(得分:6)
正如Matthew Flaschen 评论 answered,你需要在你的jar中有一个“清单文件”,并且应该包含Main-Class
标题指出哪个是jar中的主要类要执行。 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
或{等特定任务提供哪些选项{3}})。
答案 2 :(得分:3)
答案 3 :(得分:2)
您的命令将创建一个jar文件。您可能需要设置Main-Class manifest header。
答案 4 :(得分:2)
我建议使用一些IDE,如Netbeans,Eclipse,IntelliJ IDEA,并专注于您的编程(通过点击构建您的程序)。