System.out何时不出现在Java控制台中?

我知道任何标准输出( System.out )都会出现在Java控制台窗口中(当它启用时)。 我发现某处可能存在这种情况,例如Swing应用程序。 是这样的吗?

基本上,我不期望在控制台中看到标准输出的情况或设置是什么? 例如,在JDK上运行的行为是否存在差异,而不是在JRE上明确显示? javaw.exe的?

ps,我理解如何在Java设置中显示控制台,但我很好奇,因为我已经设法创建一个应用程序,作为可执行jar运行,尽管有一些调用System.out但没有启动控制台) Windows 7的。

我能想到的一种情况是调用System.setOut(null) (或System.setOut(any OutputStream other than System.out or System.err) )然后控制台(如果存在)将不显示任何内容。

在控制台中看不到System.out输出的唯一方法是调用方法System.setOut 。 调用此方法将输出重定向到图形化Java控制台,但我不知道除非您是自愿地将其重定向到Java控制台之外的任何其他现实情况。

根据终端设置,可能会发生输出,直到发送换行符也不会写入。 因此,如果您执行System.out.print("test")它可能不会立即显示。 在Windows上通常不是这种情况,但在Unix终端上这很常见。

也许您使用javaw启动虚拟机,此版本不会显示控制台消息。 您可以使用java启动虚拟机,该虚拟机将显示控制台消息。

javaw适用于带有Windows的应用程序,java适用于控制台应用程序。

同样的事情发生在我身上。 我无法在控制台上获得System.out.println或Logger.debug。

如果您正在使用Eclipse或其他任何项目,您可以在下面阅读。

解决方案:我意识到我没有将jar和一些java文件提交给网络上的SubVersioN。 就这样。 项目尚未编制。