(Swing を使用して) Java デスクトップ アプリケーションを作成し、JNLP を使用してネットから起動して動作させようとしています。アプリケーションはターミナルから起動すると正常に動作しますが、JNLP から起動するとすぐに閉じません。毎回手動でプロセスを強制終了する必要があります。
デフォルトのクローズ操作としてJFrame
使用すると問題が発生する可能性があることを読みましたが、そうではありません。(暗黙的DISPOSE_ON_CLOSE
に) を使用します。また、すべてのオブジェクトを解放した後にDO_NOTHING_ON_CLOSE
明示的に呼び出しています。System.exit(0)
f = new JFrame("Pacman");
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// Terminate the Game-loop:
GameLoop.INSTANCE.stopLoop();
// Close the application:
System.exit(0);
}
});
アプリケーションを閉じるときに例外がスローされる可能性があると思いますが、JNLP で開始された実行中のアプリケーションのコンソール出力 (スタック トレースなど) を取得する方法が見つかりません。これが私が試したことです:
javaws
デバッグパラメータから始めて接続しますjconsole
(動作しますが、例外またはコンソール出力が見つかりません)。- デバッグ パラメーターから始め
javaws
て、それに IntelliJ デバッガーをアタッチします (これも機能しますが、何も出力されません)。
では、JNLP を使用してアプリケーションを起動し、通常のデスクトップ アプリケーションで行う場合と同様に、出力 (デフォルトのアウト ストリームとエラー ストリームに書き込まれる) を取得するにはどうすればよいでしょうか?