2

私のコードはEclipseで正しくコンパイルされ、実行されます。コードを追加する前に、次のようにしてjarファイルを作成することもできました。

jar cvfm Manifest.txt <Classes>

次に、これをコンストラクターのコードに追加しました。

addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
    JFrame window = (JFrame) e.getSource();
            window.toBack();
}});

新しいjarファイルを作成して実行しようとすると、そのコードを指すエラー行を含むNoClassDefErrorが表示されます。具体的には、私はこれを手に入れました:

Exception in thread "main" java.lang.NoClassDefFoundError: BinaryClock$1
at BinaryClock.<init>(BinaryClock.java:55)

BinaryClockが私のメインクラスであり、55行目が上からのコードの最初の行です。なぜBinaryClock$1になるのかわかりませんが、エラーが発生します。

さらにコードや情報が必要な場合は、私に知らせてください。必要がなければ、ソースコード全体を貼り付けたくありませんでした。

4

2 に答える 2

4

このファイルには、表示したコードでBinaryClock$1.class作成された匿名の内部クラスが含まれます。WindowAdapterそのファイルをjarファイルに含める必要があります。

基本的に、クリーンなディレクトリにビルドし、そのディレクトリ内のすべてをjarファイルに含める必要があります。それについて選択しようとしないでください-ファイルがコンパイラによって生成されている場合、それには正当な理由があります。

于 2012-05-06T19:21:05.290 に答える
0

Eclipseから直接jarファイルを作成できます。パッケージエクスプローラー->エクスポート...->Java->JARファイルでプロジェクトを右クリックします。これは、クラスパスを含むプロジェクトのすべての設定を考慮し、多数の追加オプションを指定できるため、非常に便利です。さらに、外部ツールで実行できるAntファイルに保存できます。詳細はこちら: http: //help.eclipse.org/helios/index.jsp?topic =%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-33.htm

于 2012-05-06T19:30:11.577 に答える