2010-11-22 54 views
1

私は2つのクラスを持っています。私が使用してJARファイルを作成:最初のクラスが完了した後にJARが終了する

jar cvf practice.jar class1.class class2.class 

をそれから私は開始エントリ・ポイントを設定:私はJARファイルを実行すると

jar cfe practice.jar class1 class1.class 

を、それが次への遷移がある時点まで正常に動作しますつまり、​​3210です。それから、それは終了します。しかし、次のクラスに進みたい。

class2.classに移動する必要があります。それはその目的の中で言っているからです。明らかに、そうではありません。

public class class1 { 
    public static void main(String[] args){ 
     JOptionPane.showMessageDialog(null, "This is class 1", "Order",JOptionPane.PLAIN_MESSAGE); 
     class2 hey = new class2(); 
    } 
} 

public class class2 { 

    public class2() { 
     JOptionPane.showMessageDialog(null, "This is class 2", "Order",JOptionPane.PLAIN_MESSAGE); 
    } 
} 
+0

あなたはクラス1とクラス2からのコードの一部を含めることができます。

は、以下の代わりに、両方のあなたのjar ...のコマンドを試してみてください? – thattolleyguy

+0

ソースコードと表示されているエラーメッセージを表示してください。 –

+2

コミュニティのために、タイトルに意味のある名前を付けてください。 –

答えて

0

を私はあなたの例を試してみましたが、私はOK」を押した後class2用がNoClassDefFoundを取得します"最初のウィンドウに表示されます。これはpractice.jarファイルにclass2.classが存在しないためです。

jar cfe practice.jar class1 class1.class class2.class 
1

オブジェクト・クラス2の新しいインスタンスを作っているが、コンストラクタ何も起こりませんで何もない場合は、私の推測では、あなたが呼び出す必要がclass2の中の別の方法では、コードを持っているということですか?

「出る」という言葉が何であるかを知っておくと便利だと思います。

+0

私はSystem.exit(0)を引き受けたように感じました。自動的に。 – razshan

1

class2で記述されたコードはmainメソッド内にありますが、このメソッドはそのクラスのインスタンスを作成するときには実行されません。あなたは、コンストラクタにコードを移動したり、mainメソッドを呼び出すのいずれかの場合:

public class Class1 { 

public Class1() { 
    JOptionPane.showMessageDialog(null, "This is class 1", "Order", 
      JOptionPane.PLAIN_MESSAGE); 
} 
public static void main(String[] args) { 
    Class1 c1 = new Class1(); 
    Class2 c2 = new Class2(); 
} 

}

public class Class2 { 
public Class2() { 
    JOptionPane.showMessageDialog(null, "This is class 2", "Order",JOptionPane.PLAIN_MESSAGE); 
} 

}

+0

「class2で書かれた唯一のコードはメインメソッドです」 - これは元の質問には見られません。彼は 'class2'にコンストラクタを持っています。 –

関連する問題