2017-12-12 15 views
0

メモ帳や電卓、Java Runtimeを使用するアプリケーションなどを開くことができます。たとえば電卓を開くにはjavaの下のコード行を実行する必要があります。Java Runtime、アプリケーションの終了時に何らかのアクションを実行

Runtime.getRuntime().exec("calc"); 

しかし、私は上記のコード行で開いたアプリケーションを閉じる際にいくつかのアクションを実行したいと思います。

  1. onClosingアプリケーションで何かを実行する方法はありますか?
  2. アプリケーションが開いているかどうかを確認するにはどうすればよいですか?
+0

https://docs.oracle.com/javase/8/docs/api/java/lang/ProcessBuilder.htmlより多くのオプションが提供されます(https://docs.oracle.com/javase/8も参照)。 /docs/api/java/lang/Process.html) –

+0

'exec'は' Process'インスタンスを返しますので、このプロセスを処理することができると思います。 –

+0

Windows。私はランタイム、ProcessBuilder、プロセスはすべての人に共通していると信じています。コマンドだけが変更されますか? –

答えて

1

あなたはこのような何かを行うことができます。

Process proc = Runtime.getRuntime().exec("calc"); 
proc.waitFor(); 

のwaitForは、アプリケーションの終了を待ちます。待機したくない場合は、proc.isAlive()に電話してプロセスのステータスをテストできます。また、アプリケーションを起動し、終了を待つjavaスレッドを開始することもできます。

+0

'exec(" calc ")'を実行すると、残念ながら 'proc.waitFor();'の後でもコードが続行されます。ただし、プログラムが**終了していても電卓は表示されます**。これは私のマシンに特有のケースである可能性が高いという確認を探しています。 – payloc

+0

@payloc大丈夫です、私はすべてのOSで、Windows 7だけでテストしていません。 –

+0

okok、私のマシンはWindows 10です。それは奇妙ですが... – payloc

関連する問題