将控制台附加到 LaunchConfiguration

Attach console to LaunchConfiguration

我正在编写一个实现 ILaunchConfigurationDelegate 的插件。

我必须重写这个方法:launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor);

当使用 System.out.println() 写入时,我可以像 JavaApplication 启动类型中的那样附加一个 TextConsole 吗?

我想要它,以便我的启动对其控制台具有相同的生命周期管理。

本质上,我的 ILaunchConfiguration 类型是一个容器,其中包含所有可能的其他 ILaunchConfiguration 类型。启动我的启动容器时,我想记录按顺序启动的其他容器的行为。此日志记录在 TextConsole 中非常理想。示例:'Hello World started.' 'Hello World terminated'、'Pi approximator started' ... 等

AFAIK,无需额外步骤即可将 std in/out 重定向到 Eclipse 控制台。每个启动配置类型的 Common 选项卡都有一个 Allocate console 选项,如果启用则提供此功能。

如果您的启动配置类型不提供 CommonTab,您可以将 ILaunchConfigurationIDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE 属性设置为 true

对于容器启动,您可以简单地分配一个 TextConsole 来写入日志消息。 debug/launch 框架将控制台附加到 IProcess 实例,这在这里无济于事,但您可能需要查看 ProcessConsoleProcessConsoleManager 以采用相关部分来打开和丢弃控制台。

或者,您可以调查是否将容器启动的 ATTR_CAPTURE_IN_CONSOLE 设置为 true 并创建一个满足控制台 ProcessConsoleManager 要求的虚拟 IProcess