2013-02-11 85 views
7

我編寫了一個名爲Main.java的.java文件,並使用Windows命令提示符中的javac編譯了它。編譯器正在創建多個.class文件(稱爲Main.class,Main $ 1.class,& Main $ 2.class - 大概是因爲我的Main.java文件中有匿名內部類)。我正在嘗試創建一個可運行的.jar文件,以便我可以雙擊運行此應用程序的快捷方式(它是一個Java Swing應用程序),但當我導航到三個類文件的目錄並鍵入時,我不成功:(JAVA)使用命令提示符從多個.class文件創建.jar文件

jar cfv file.jar Main.class Main$1.class Main$2.class 

命令提示符,然後輸出這樣的文字:

added manifest 
adding: Main.class(in 4871) (out = 2848)(deflated 41%) 
adding: Main$1.class(in 1409) (out = 833)(deflated 40%) 
adding: Main$2.class(in 1239) (out = 767)(deflated 38%) 

儘管這樣,當我雙擊在Windows資源管理器的文件file.jar,簡單地說,沒有任何反應。沒有應用程序打開。

希望有人能幫助我解決這個問題。謝謝

最好... SL

+0

看看這個問題,它回答了你的問題。這方面有很多問題。 HTTP://計算器。com/questions/13081920/creating-an-executable-jar-file – 2013-02-11 22:07:27

回答

12

您需要使用的入口點開關-e(含該main()方法的類的名稱)這樣:

jar cfve file.jar Main Main.class Main$1.class Main$2.class 
+0

謝謝iamnotmaynard,這工作。我會接受這個作爲正確的迴應,一旦這個網站允許我... – Skyler 2013-02-11 22:07:51

+0

如果Java程序有更多的依賴jar文件。如何在命令提示符下表示lib路徑。 – BasK 2014-12-04 06:19:23

5

東西得告訴java哪些類應該自動啓動。 這就是清單 - 請參閱說明here 您必須將Manifest.mf打包到您的jar中。

+0

你的情況:將'Main-Class:Main'添加到文件Manifest.txt和'jar cfv file.jar Manifest.txt Main.class Main $ 1。 class Main $ 2.class' – 2013-02-11 22:07:08

0
  1. 打開命令提示符
  2. CD去所在的路徑jar文件存在
  3. 運行命令jar xf fileName.jar
  4. 這將產生COM,META-INF & Copyright.mk個文件
  5. 轉到特定的軟件包,其中u要修改的類文件(基本上類文件存在於com目錄)
  6. 下載從谷歌JAD.exe(它的Zip文件)
  7. 解壓縮zip文件,你會得到jad.exe
  8. 將類文件(其中U希望修改)的文件夾中,包含jad.exe
  9. 進入命令提示符,運行jad fileName.clas S(類文件名其中U希望修改)
  10. fileName.jad文件將得到產生,其重命名爲fileName.java
  11. 編譯fileName.java(如果其指一些其它類文件中蝕相應地配置的話)
  12. 編譯一次替換中的類文件,在步驟定義的目錄4
  13. 轉到命令提示符,cd步驟4路徑,運行jar cf fileName.jar(*表示所有類文件,而不考慮目錄)