鉴于此代码,我感到困惑的是它为什么不打印到控制台....
engine.compileTemplate(new PrintWriter(System.err));
System.err.flush();
我在控制台上看不到任何内容。 System.out也有同样的问题。是的,我通过成功打印到文件验证了代码的工作原理。
答案 0 :(得分:1)
尝试使用constructor with autoflush。你正在刷新System.err,而不是PrintWriter。
答案 1 :(得分: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