如何将Java程序转换为jar?

时间:2010-05-22 08:43:18

标签: java jar

你们的帮助...... 我试图将一个简单的java程序转换为jar,但似乎没有发生任何事情。 我有2个文件:Tester.java,Tester.Class。 然后我使用了这个命令行:

  
    

jar -cvf Tester.jar Tester.class

  

.jar文件已创建,但似乎没有任何效果。 我错过了什么?

5 个答案:

答案 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)

如果你想迟到这一点:

java -jar Tester.jar

你应该阅读tutorial lesson

答案 3 :(得分:2)

您的命令将创建一个jar文件。您可能需要设置Main-Class manifest header

答案 4 :(得分:2)

我建议使用一些IDE,如Netbeans,Eclipse,IntelliJ IDEA,并专注于您的编程(通过点击构建您的程序)。