從你們所有人的一點幫助... 我想將一個簡單的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