我知道标准输出(System.out
)的任何内容都会出现在Java控制台窗口中(启用它时)。我发现某处可能存在这样的情况:例如,从Swing应用程序尝试。是这样的吗?
基本上,我希望在控制台中看到标准输出的情况或设置是什么?例如,在JDK上运行的行为是否存在差异,而不是明确地在JRE上运行? javaw.exe的?
ps,我了解如何在Java设置中显示控制台,但我很好奇,因为我设法创建了一个应用程序,作为可执行jar运行,并没有启动控制台尽管在Windows 7上有一些调用System.out
。
答案 0 :(得分:0)
在控制台中看不到System.out
输出的唯一方法是调用方法System.setOut
。调用此方法将输出重定向到图形化Java控制台,但我不知道除非您自愿这样做,否则将从Java控制台重定向到任何其他现实情况。
答案 1 :(得分:0)
根据终端设置,在发送换行符之前不会写入输出。因此,如果您执行System.out.print("test")
,则可能不会立即显示。
在Windows上通常不是这种情况,但在Unix终端上这很常见。
答案 2 :(得分:0)
也许您使用javaw启动虚拟机,此版本不会显示控制台消息。您可以使用java启动虚拟机,它将显示控制台消息。
javaw适用于带有Windows的应用程序,java适用于控制台应用程序。
答案 3 :(得分:0)
同样的事发生在我身上。我无法在控制台上获得System.out.println或Logger.debug。
如果您正在使用Eclipse或其他任何项目,您可以在下面阅读。
解决方案:我意识到我没有将jar和一些java文件提交给网络上的SubVersioN。就这样。项目尚未编制。
答案 4 :(得分:-1)
我能想到的一种情况是调用System.setOut(null)
(或System.setOut(any OutputStream other than System.out or System.err)
),然后控制台(如果存在)将不会显示任何内容。