我开发了一个插件,其中启动了一个java应用程序。在这个应用程序的控制台日志中,我希望在添加新行时收到通知。我已经搜索了互联网并找到了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永远不会被调用。我也看不到任何错误日志。 任何人都可以告诉我这里缺少什么?
答案 0 :(得分:0)
举个例子,你可以看到它是如何用m2e-core制作的:
和
http://git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.launching/plugin.xml
每次在控制台中显示新行时,都应该调用YourConsoleLineTrackers的方法。在线追踪器中,您必须区分此线属于哪个进程。
马立克