2010-09-11 61 views
1

我想写一个Eclipse插件,它需要读取eclipse中的std错误。例如。控制台中出现的红色文字。Eclipse插件读取标准错误

我找不到像这样的正确的扩展点。我能找到的最好的是org.eclipse.ui.console.consolePatternMatchListeners,但这只是匹配控制台行,无论它们的来源如何。

任何人都知道一个方法来做到这一点或正确的扩展点?

回答

2

使用内部代码,你可以添加到听者ErrorStream

ProcessConsole con = ... 
con.getProcess().getStreamsProxy().getErrorStreamMonitor().addListener(new IStreamListener() { 
    @Override 
    public void streamAppended(String text, IStreamMonitor monitor) { 
     System.out.println("text=" + text); 
    } 
});
+0

酷,这正是我一直在寻找。不熟悉使用插件中的eclipse内部代码。用try/catch包装这些代码是否安全,并且如果有人正在使用内部代码已更改的eclipse版本,则会抛出某种类路径异常? – ghempton 2010-10-20 17:54:17

+0

ProcessConsole自3.0开始,他们不经常删除内部代码(因为很多事情你只能用内部代码来完成)。他们说这是你需要使用内部代码,你应该做出错误报告,他们会尽量公开。 – IAdapter 2010-10-21 09:09:11