如何通过eclipse-plugin读取console-output-text?

时间:2016-08-25 07:31:35

标签: eclipse eclipse-plugin eclipse-rcp

我正在尝试编写一个Eclipse插件,当已经运行的LaunchConfiguration在控制台中打印用户预定义字符串时,该插件会启动LaunchConfiguration

以下是我正在寻找的伪代码示例:

            String check = "Server started and running";

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

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

            }

有没有办法实现上面的例子? 任何帮助都一如既往地赞赏!

1 个答案:

答案 0 :(得分: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的一个实例,您可以使用TextConsole addPatternMatchListener方法添加模式监听器。