我已经开发了一个可启动Java应用程序的插件。在此应用程序的控制台日志中,我想在添加新行时收到通知。我搜索了Internet,找到了org.eclipse.debug.ui.consoleLineTrackers扩展点。如下使用它。

<extension point="org.eclipse.debug.ui.consoleLineTrackers">
  <consoleLineTracker
     id="com.plugin.util.MyConsoleTracker"
     class="com.plugin.util.MyConsoleTracker"
     processType="MyProcessType">
  </consoleLineTracker>
</extension>


然后在我的Java代码中,我启动了如下所示的应用程序。

config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, classpath);
config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH,false);
config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME,MAIN_CLASS_NAME);
config.setAttribute(IProcess.ATTR_PROCESS_TYPE, "MyProcessType");
ILaunch launch = DebugUITools.buildAndLaunch(config, ILaunchManager.DEBUG_MODE,new NullProgressMonitor());


这些之后,我可以成功启动我的应用程序,但是我的类com.plugin.util.MyConsoleTracker从未被调用过。我也看不到任何错误日志。
有人可以告诉我我在这里想念的吗?

最佳答案

例如,您可以看到它是如何在m2e-core中制成的:

http://git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.launching/src/org/eclipse/m2e/internal/launch/MavenConsoleLineTracker.java



http://git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.launching/plugin.xml

每次在控制台中出现新行时,应引发YourConsoleLineTrackers方法。在Line Tracer内部,您必须区分该行属于哪个进程。

马雷克

10-06 01:49