2017-01-24 4 views
0

から別のJavaアプリケーションは、私が構築されたメモ帳アプリケーションを開きます。しかし、どうすればActionListenerのメモ帳アプリケーションを開くことができますか? ProcessBuilderを使用する必要がありますか?を開き、既存のJavaプログラム

+0

あなたは)単にNotepadApp newApp =新しいNotepadApp(のようなクラスのインスタンス化 –

+0

をインスタンス化しない場合は、別のプロセスで他の他のアプリを持っているために欠けています。私はこれが最善のアプローチであることに同意*;あなたのリスナー –

+0

@SaiYeYanNaingAyeに*「あなたのリスナーでNotepadApp newApp =新しいNotepadApp()のようにインスタンス化」。実際に必要でない限り、新しいプロセスを開始しないでください。このように、 'ランチャー'アプリ。起動したアプリとより簡単に通信することができます。ノートパッドアプリで 'EXIT_ON_CLOSE'とは対照的に、' launcherFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) 'を必ず確認してください。 - 後者は、ノートパッドを閉じるだけでなく、JREとランチャーアプリを終了させます。 –

答えて

0

あなたの独立したプログラムは、コンパイル済みの.jarファイルがある場合は、それを起動するには、次のコードを使用していますが、それ以上の任意のコントロールを持っていません注意してください。

Runtime.getRuntime().exec("java -jar 'path/to/file.jar'"); 

(注)この方法は、あなたが、あなたの個々のニーズに変更することができますProcessオブジェクトを返します。

+1

は、実行中のJVMに直接ノートパッドをinstntiatingする(上記のコメントを参照)を移動するための方法であることを明確ヒントです。多くの良いヒントについては、[ときのRuntime.exec()しません](http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html)も参照してください。プロセスの作成と処理を正しく行うことができます。それを無視すると 'exec'が参照され、プロセスを作成するためには' ProcessBuilder'が使用されます。また、 'String arg'を' String [] args'に分割して、スペース文字を含むパスのようなものを説明してください。 –

関連する問題