我已经开发了一个可启动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内部,您必须区分该行属于哪个进程。
马雷克