2013-05-14 75 views
0

如何從類文件創建.jar可執行文件?我在網上發現了非常簡單的指令,包括創建一個清單,然後從終端凝結它。無法創建工作.jar

複雜因素,然而,我編程這個東西的方式,類文件是它自己的客戶端...它在編譯器中工作正常,但我認爲這可能以某種方式更改標準清單?我的程序看起來大致是這樣的:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.util.*; 

public class Schedule implements ActionListener { 
    public static void main(String[] args) { 
    Schedule gui = new Schedule(); 
    } 
    public Schedule() { 
    public void actionPerformed(ActionEvent event) { 
     //... 
    } 
    //... 
    private class CheckboxListener implements ItemListener { 
     //... 
    } 
    } 
} 

我編這個計劃程序後,編譯器中加入了一堆其他的類目錄的,所以在目錄中現在有Schedule.class,一些所謂的Schedule$1.classSchedule$CheckboxListener.class和一堆其他類(格式類似於Schedule$CheckboxListener.class)。

簡單的說,我想知道我的清單文件應該是什麼樣子。現在,我有:

Main-Class: Schedule 

但這不會產生工作的.jar文件。我究竟做錯了什麼?

+1

當你說「工作」時,你期待什麼?你如何調用JAR文件,它在做什麼?你是否收到錯誤消息? – Gian 2013-05-14 03:09:14

+0

當我雙擊Schedule.jar時,我收到以下錯誤消息: 線程「main」中的異常java.lang.NoClassDefFoundError:安排Schedule $ CheckBoxListener \t。 (Schedule.java:49) \t在Schedule.main(Schedule.java:8) 造成的:拋出java.lang.ClassNotFoundException:計劃$ CheckboxListener \t在java.net.URLClassLoader的$ 1.run(URLClassLoader.java: 202) \t在java.security.AccessController.doPrivileged(本機方法) \t在java.net.URLClassLoader.findClass(URLClassLoader.java:190) \t在java.lang.ClassLoader.loadClass(ClassLoader.java:306) ... – user2379931 2013-05-14 03:15:23

+0

您必須包含javac編譯器生成的那些額外的類。 $表示內部類。 – 2013-05-14 03:25:35

回答

0

你真的把類文件放在Jar文件中嗎?你從來沒有提到這樣做。見Creating a JAR File,或基本上它的工作原理是這樣的:

jar cf file.jar input-file(s) 

可以使用,可以打開Zip文件,如Winzip或7-Zip的任何程序中打開一個jar文件。或者你可以使用命令行工具jar

jar tf file.jar 
+0

是的,那是票。非常感謝你和其他人! – user2379931 2013-05-14 04:06:16

+0

太棒了,不客氣。由於這回答了您的問題,並且由於您是StackOverflow的新手,請參閱http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – 2013-05-14 15:17:43