2012-10-12 54 views
2

我在eclipse中開發了一個插件,這個插件應該調用ant任務sshexec。問題是如何在eclipse控制檯中打印遠程消息?ant任務「sshexec」,如何在控制檯中打印遠程消息?

我的代碼如下所示:

Project p = new Project(); 

MessageConsole console = new MessageConsole("building", null); 
IConsoleManager manager = (IConsoleManager) ConsolePlugin.getDefault().getConsoleManager(); 
manager.addConsoles(new IConsole[] { console }); 
manager.showConsoleView(console); 

MessageConsoleStream cs = console.newMessageStream(); 
cs.setColor(Display.getDefault().getSystemColor(SWT.COLOR_BLUE)); 
PrintStream ps = new PrintStream(cs); 

final DefaultLogger consoleLogger = new DefaultLogger(); 
consoleLogger.setErrorPrintStream(ps); 
consoleLogger.setOutputPrintStream(ps); 
consoleLogger.setMessageOutputLevel(Project.MSG_INFO); 

p.init(); 
p.addBuildListener(consoleLogger); 
ProjectHelper helper = ProjectHelper.getProjectHelper(); 
helper.parse(p, buildFile); 

p.executeTarget(p.getDefaultTarget()); 

當執行sshexec目標進行編譯,我總是得到輸出消息像

[sshexec] cd ...; ls ...; .... 

它只打印我寫的命令,但遠程機器的編譯信息無法在控制檯中打印。一旦編譯過程出現錯誤,它仍然會成功返回構建。
如何在控制檯中打印遠程消息並獲取錯誤結果?

回答

0

好的,我只是用另一種方式解決這個問題。 我使用了process = Runtime.getRuntime()。exec(「java -jar ant-launcher.jar -f build.xml」)來執行ant任務。但要記得啓動兩個線程來讀取process.getInputStream()和process.getErrorStream()。

相關問題