- まずは、外部プロセスを作成する。通常のJavaと同じくRuntime.getRuntime()#execを使用すればOK
- Eclipse用のIProcessを作成する。
DebugPlugin.newProcess(new Launch(null, ILaunchManager.RUN_MODE, null), process, "my console"); Launchも本当はちゃんと作って設定した方がいいとは思うが。。 - メッセージだけ表示したい場合には、
org.eclipse.ui.console.MessageConsole を作成。 Consoleの停止ボタン(赤い■のボタン)で、プロセスも終了したい場合には、org.eclipse.debug.internal.ui.views.console.ProcessConsole の方を作成。 Consoleで停止した場合には、PropertyEventのIConsoleConstants.P_CONSOLE_OUTPUT_COMPLETEが飛んでくるので、addPropertyChangeListenerをキャッチ。 - 作ったConsoleはConsoleManagerに登録。
IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager(); manager.addConsoles(new IConsole[] { console }); manager.showConsoleView(console); - 実行された処理内容は、
IProcess process; process.getStreamsProxy().getOutputStreamMonitor().addListener process.getStreamsProxy().getErrorStreamMonitor().addListener でListenerかけて public void streamAppended(String text, IStreamMonitor monitor) を実装すればOK - ProcessConsoleの場合、InputStream(入力)に何か設定したい時には、
console.getInputStream().appendData("なんかの文字"); ってやればOK ProcessConsoleの場合、表示されたConsoleにて、キーボードからの入力も受け付けるようになります。 簡易的なコマンドコンソールができちゃぅかも。
|
|