如何使用 IConsoleLineTracker 在 eclipse 中读取控制台

发布于 2024-12-01 04:42:15 字数 1019 浏览 3 评论 0原文

我开发了一个插件,其中启动了一个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 从未被调用。我也看不到任何错误日志。 有人可以告诉我我在这里缺少什么吗?

I have developed a plugin in which a java application is launched.In the console log of this application i want to be notified when new lines added.I have searched internet and found org.eclipse.debug.ui.consoleLineTrackers extention point.I have used it like below.

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

Then in my java code i have launched application like below.

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()); 

After these, i can launch my application successfully however my class com.plugin.util.MyConsoleTracker is never called.I cant see any error log either.
can anybody please tell me what i am missing here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

御弟哥哥 2024-12-08 04:42:15

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

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

每次新行出现时,都应该调用 YourConsoleLineTrackers 的方法显示在控制台中。在 Line Tracer 中,您必须区分该行属于哪个进程。

马雷克

For an example you can see how it is made in m2e-core:

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

and

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

Methed of YourConsoleLineTrackers should be evoked each time when a new line is showed up in console. Inside Line Tracer you have to distinguish to which process this line belongs to.

Marek

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文