繁体   English   中英

如何使用自定义启动配置捕获Eclipse插件的控制台输出?

[英]How to capture console output of Eclipse plugin with custom Launch Configuration?

我正在编写一个带有自定义启动配置的Eclipse插件,即LaunchConfigurationDelegate子类中的launch()方法。 这个方法本质上只是调用Runtime.exec() ,但是当我从launch()内部写入System.out时,它会进入调试插件的Eclipse实例的控制台,而不是插件实例本身的控制台。 我已经分析了该方法的ILaunchConfigurationILaunch参数,但无法找到任何指定我可以写入的输出/错误流的地方。

正如教程中推荐的那样,我有两个独立的插件一起运行; 一个处理UI东西( LaunchConfigurationTabLaunchConfigurationTabGroupLaunchShortcut ),另一个包含LaunchConfigurationDelegate本身。

我使用这段代码在我的UI插件中创建了一个控制台,我可以在UI代码中写得很好。 但我无法弄清楚如何将我的非UI插件中生成的输出定向到我的UI插件中创建的控制台。

我读过这篇文章这一个 ,但他们没有规定如何“得到阿霍德”,这是中产生的输出的launch()摆在首位方法。

任何指针都会非常受欢迎,我被困住了!

好吧,我终于设法得到了如下工作:

在我的LaunchConfigurationDelegate我介绍了以下静态方法:

public static void setConsole(PrintStream ps) {
    System.setOut(ps);
    System.setErr(ps);
}

然后在我的UI插件的PerspectiveFactory创建我的控制台时,我将其调用如下:

private void createConsole() {
    console = new MessageConsole("My Console", null);
    console.activate();
    ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ console });
    MessageConsoleStream stream = console.newMessageStream();

    MyLaunchConfigurationDelegate.setConsole(new PrintStream(stream));
}

这是有效的,除非我每次关闭Eclipse并重新启动它时控制台都会消失。 但是,当我重置我的视角时,控制台会再次出现。 显然我需要在启动时调用该代码,而不是在PerspectiveFactory本身。

希望这可以帮助某人..如果有人对这最后一个问题(或者我的方法一般)有一些意见,请做评论!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM