EclipseでJavaでコードを記述して2回目に実行すると、最初のプロセスはまだ実行されています。たとえば、いくつかのプリントを含む無限ループを作成し、それを1回実行してからもう一度実行すると、1回目と2回目の両方から実行中であることが表示されます。さらに、Eclipseは遅くなっています。再実行時に最初のプロセスを自動的に終了する方法はありますか?Eclipse:自動終了(java)
答えて
デバッグビュー内のエントリを右クリックして、「実行中のインスタンスを停止してから、最初に実行したいと思っているものに最も近い」「終了と再起動」を選択できます。同じ設定の新しいもの
これ以外のものは、インスタンスがリッスンするソケットと完全に起動する前にシャットダウンコマンドを送信するソケットなど、自分自身で実装することをお勧めします。
短い答え:
ゴーウィンドウへ - >ビューの表示 - >デバッグ、あなたのプログラムを選択し、それを終了します。
ロング説明:あなたの問題の説明により、
、あなたはおそらくスレッドを使用するフレームワークを使用している(あなたがゲーム内のスイングを使用していますか?)。実行中のスレッドは、デバッグビューで表示することもできます。
JVMは、すべてのユーザースレッドが終了するまでプロセスを終了しません。
スウィングを使用している場合は、JFrame setDefaultCloseOperationを使用して、ウィンドウのデフォルトの動作を変更できます。
また、System.exit(0)を使用してJVMプロセスを終了することもできます。
これは合理的ではないようです。スクリプトの背景から来て、私は多くの手動テストをするのに慣れていて、ほぼすべての変更でプログラムをコンパイルするのが好きです。
次のクラス(Bomber)は、10分後にSystem.exit(0)を作成します。メインにBomber daBomb = new Bomber();
のBombオブジェクトを投げ、daBomb.reset();
をトリガーしてタイマーをリセットするだけです。窓ガラスの上にハエのようなプロセスが集まると、コンソールタブバーの二重のX()をクリックしてすべてののプロセスを閉じます。
public class Bomber {
Bomb bomb = new Bomb();
public Bomber() throws InterruptedException {
Thread thread = new Thread(bomb);
thread.start();
}
public void reset() {
bomb.reset();
}
//kill because someone cut the redwire!
public void redWire() {
bomb.timer = 1000;
}
//Defuses bomb
public void greenWire() {
reset();
bomb.greenWire=false;
}
public class Bomb implements Runnable {
public int timer;
public boolean greenWire;
public Bomb() {
reset();
greenWire=true;
}
public void run() {
try {
while (timer > 1) {
Thread.sleep(1000L);
timer = timer - 1000;
//System.out.println(timer);
}
if (greenWire) {
System.exit(0); // kill, because no-one cut the green wire.
}
} catch (InterruptedException iex) {
}
}
public void reset() {
timer = 3000000; // five minutes
// timer = 5000; // Five seconds
}
}
}
ボンバー機能をどのように組み込みたいかはあなた次第です。私はMainのための関数を作成しました。次のコードは完全には機能しないかもしれないことに注意しましょう。なぜなら、私は非核コードをたくさん切り取って、それがまだ動作していることを確認するためにテストしなかったからです。
public static void startUp() throws InterruptedException {
Bomber daBomb = new Bomber();
String input = "";
Interpreter console = new Interpreter();
while (!input.equalsIgnoreCase("quit")) {
daBomb.reset();
input = terminal.next().toLowerCase();
}
daBomb.redWire();
}
スクリプトの背景とよく再実行することも私の場合です。興味深い解決策。私が試してみます。おかげで – grxx
ええ、JUnitは素晴らしいです。 – Indolering
- 1. クォーツスケジューラジョブ自動終了
- 2. Javaデーモンスレッドは、親が終了すると自動的に終了しますか?
- 3. Eclipse終了ショットカット
- 4. ページの自動保存/送信フォーム/ブラウザの終了/終了
- 5. Cの自動エントリ終了トレース
- 6. SurfaceViewを自動的に終了
- 7. 自動完了2文字後にEclipse
- 8. `func`が終了するとスレッドは自動的に終了しますか?
- 9. Javaのメソッドの入力/終了を自動的に記録する方法は?
- 10. これは通常の自動終了動作ですか?
- 11. 非Java Eclipseプロジェクトの自動ビルド
- 12. Eclipse Java 8ラムダ式の自動補完
- 13. Java SWTシェルウィンドウの終了イベント
- 14. DartEditor.exeとjava終了コード1
- 15. Java終了コードと意味
- 16. Javaループの終了条件
- 17. Javaネイティブコード文字列終了
- 18. MongoDB Java API 3.0終了カーソル
- 19. メインメソッドはEclipseで終了しません
- 20. Eclipseはプラグインで終了しません
- 21. Pycharmが自動的にプログラムを終了する、python idle doesnt
- 22. UITableViewCellのUITextViewは、自動訂正を終了できません。
- 23. ajax呼び出しが自動終了しました。
- 24. Android:4.0.3エミュレータが自動的に終了しました
- 25. UIPopoverが自動的に終了するのを停止する
- 26. jQuery append()で自動タグの終了を防ぐには?
- 27. EC2インスタンスが自動スケール終了を拒否できますか?
- 28. NSUserDefaultsは自動終了を安全に処理しますか?
- 29. Eclipseを無効にする**変数**自動完了
- 30. Eclipse - Eclipseのシャットダウン/終了時にタスクを実行する
Terminate and Relaunchは良いです、私はショートカットを設定して、それは問題ありません!ありがとうございました。 – grxx