2016-08-25 84 views
2

我正試圖編寫一個Eclipse插件,當已經運行的LaunchConfiguration在控制檯中打印一個用戶預定義的字符串時,該插件將啓動一個LaunchConfiguration如何通過eclipse-plugin讀取控制檯輸出文本?

這裏是我要找的僞代碼示例:

  String check = "Server started and running"; 

      new ConsoleOutputListener(Event event) { 
      String consoleText = event.getConsoleOutputTextOfAllConsoles(); 

       if(consoleText.contains(check)) { 
        //launch LaunchConfiguration 
       } 

      } 

是否有從上述實施例的方法嗎? 任何幫助si一如既往的讚賞!

回答

3

你的問題有點不清楚你到底想做什麼,但可能你可以使用org.eclipse.ui.console.consolePatternMatchListeners擴展點來定義控制檯上的模式匹配監聽器。

喜歡的東西(從Eclipse的幫助):

<extension 
    point="org.eclipse.ui.console.consolePatternMatchListeners"> 
    <consolePatternMatchListener 
     class="com.example.ExampleConsolePatternMatcher" 
     id="com.example.ExampleConsolePatternMatcher" 
     regex=".*foo.*"> 
    <enablement> 
     <test property="org.eclipse.ui.console.consoleTypeTest" value="exampleConsole"/> 
    </enablement> 
    </consolePatternMatchListener> 
</extension> 

可將特定類型的控制檯相匹配的正則表達式。

控制檯支持有許多擴展點來定義不同類型的控制檯擴展。

如果你想這樣做,更多的動態,你可以監聽調音臺使用IConsoleManager創建:

IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager(); 

// Existing consoles 
IConsole[] consoles = manager.getConsoles(); 

// Listen for consoles being added/removed 
manager.addConsoleListener(console listener); 

文本控制檯將是TextConsole一個實例可以使用TextConsoleaddPatternMatchListener方法添加的模式聽衆。

+0

您好格雷格我編輯了這個問題,並添加了一個例子。我認爲你的解決方案不是我特別尋找的,但是也許你可以再次看看編輯過的問題。提前致謝。 – PrestigeDev

+0

我認爲你仍然必須使用模式匹配器監聽器,但您可以通過偵聽添加的控制檯來動態設置它。我已經更新了答案,以概述如何做到這一點。 –

+0

它完美的工作。謝謝Greg,您在Stackoverflow的工作非常棒。 – PrestigeDev