2010-09-11 59 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