runnableを実装することでイベントをスレッド化する内部クラスを呼び出す、作業中のプロジェクトのエクスポートに問題があります。Eclipseでは正しく機能しますが、エクスポートすると、内部クラスの開始に失敗します。これは、runnableを実装するクラスでのみ発生します。
これは、エクスポートされたjar形式でのみ発生しますが、Eclipse内で完全に機能します。
私はスレッドを次のように呼んでいます:
new Thread(new SomeRunnable()).start();
SomeRunnableはどこにありますか
public class SomeRunnable implements Runnable {
@Override
public void run() {
//Create a clip
try {
Clip clip;
clip = AudioSystem.getClip();
AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile);
clip.open(audioIn);
clip.loop(reps);
} catch (LineUnavailableException e1) {
e1.printStackTrace();
System.exit(0);
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
System.exit(0);
} catch (IOException e1) {
e1.printStackTrace();
System.exit(0);
}
System.out.println("Successful.");
}
実行可能なjar形式にエクスポートすると、プログラムは正しく起動してGUIを表示しますが、スレッドSomeRunnableを実行するように指示された場合、クリップを再生しないため、何も実行せず、trycatchステートメントも入力しません。 、プログラムを終了することもありません。これは、jarがクラスファイルを認識しておらず、mainメソッドからそれらを呼び出さないことを示しています。
eclipseがコードを処理する方法とは異なる動作をする原因は何ですか?