1

鉴于此代码,我对为什么它不打印到控制台感到困惑......

    engine.compileTemplate(new PrintWriter(System.err));
    System.err.flush();

我在控制台上什么也没看到。System.out 也有同样的问题。是的,我通过成功打印到文件来验证代码是否有效。

4

2 回答 2

1

尝试使用带有 autoflush 的构造函数。您正在刷新 System.err,而不是 PrintWriter。

于 2012-11-12T21:50:33.400 回答
0

这段代码是在什么上下文中执行的?真的需要更多信息来确定发生了什么。

您的代码是否在您正在调试的插件中运行?如果是这样,那么使用“打印到控制台” - 您是指与您的插件相同的 Eclipse 实例的控制台吗?

为此,您需要执行以下操作:

MessageConsole console = new MessageConsole("My Console", null);
console.activate();
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ console });
MessageConsoleStream consoleStream = console.newMessageStream();
consoleStream.println("Hello, world!");

否则,它会转到启动 Eclipse 的控制台。

在这里阅读更多:http: //wiki.eclipse.org/FAQ_How_do_I_write_to_the_console_from_a_plug-in%3F

于 2012-11-14T06:58:29.070 回答