鑑於這種代碼,我百思不得其解,爲什麼它不打印到控制檯....爲什麼不在Eclipse中打印到控制檯?
engine.compileTemplate(new PrintWriter(System.err));
System.err.flush();
我在控制檯上看到什麼。 System.out也有同樣的問題。是的,我通過成功打印到文件來驗證代碼的工作原理。
鑑於這種代碼,我百思不得其解,爲什麼它不打印到控制檯....爲什麼不在Eclipse中打印到控制檯?
engine.compileTemplate(new PrintWriter(System.err));
System.err.flush();
我在控制檯上看到什麼。 System.out也有同樣的問題。是的,我通過成功打印到文件來驗證代碼的工作原理。
嘗試使用constructor with autoflush。您沖洗System.err,而不是PrintWriter。
該代碼在什麼情況下執行? 確實需要更多信息來確定發生了什麼。
您的代碼是否在您正在調試的插件中運行? 如果是這樣,那麼「打印到控制檯」 - 是否指與插件相同的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
不應該手動沖洗嗎? – Zombies
是的,但你應該沖洗PrintWriter,而不是System.err? – thedayofcondor