Java printf和System.out.println在OSX上不是原子的(奇怪地相互作用)?

Java printf和System.out.println在OSX上不是原子的(奇怪地相互作用)?,java,macos,jvm,printf,system.out,Java,Macos,Jvm,Printf,System.out,我有一个Java应用程序不时地写入System.out。我还打开了一些日志记录(-XX:+printcomilation-verbose:gc…),这些日志记录是在VM中本机实现的。本机日志记录和对System.out的调用最终都会对stdout进行printf调用 然而,在Mac OS上(就在这个操作系统上,而不是在Linux和Windows上),Java应用程序的部分打印消息丢失了!这意味着我有一个类似于System.out.println(“Valid run.”)的调用,它只打印Vali

我有一个Java应用程序不时地写入
System.out
。我还打开了一些日志记录(
-XX:+printcomilation-verbose:gc
…),这些日志记录是在VM中本机实现的。本机日志记录和对
System.out
的调用最终都会对
stdout
进行
printf
调用

然而,在Mac OS上(就在这个操作系统上,而不是在Linux和Windows上),Java应用程序的部分打印消息丢失了!这意味着我有一个类似于
System.out.println(“Valid run.”)的调用
,它只打印
Valid ru
和VM的一条日志消息。然而,找不到丢失的
n.


我知道C标准没有规定printf是原子的,但是我认为它是原子的,或者至少即使不是原子的,丢失的
n.
必须在其他地方,并且不能完全丢失。您知道这可能是什么,或者如何进一步调试吗?

能否提供一些有关您正在使用的JVM/JDK版本的详细信息?执行写入操作后,请键入您尝试的终端java-VersionID,以检查是否存在刷新问题?您是否尝试将输出重定向到文件并彻底查找丢失的
n
?它的消失可能是终端显示与隐藏字符或回车符相结合的产物。版本:openjdk版本“1.8.0_66-internal”openjdk运行时环境(build 1.8.0_66-internal-b17)openjdk 64位服务器VM(build 25.66-b17,混合模式)刷新没有帮助。我已经将它重定向到一个文件中,无论是否重定向,都会出现问题。您能否提供一些有关您正在使用的JVM/JDK版本的详细信息?执行写入操作后,请键入您尝试的终端java-VersionID,以检查是否存在刷新问题?您是否尝试将输出重定向到文件并彻底查找丢失的
n
?它的消失可能是终端显示与隐藏字符或回车符相结合的产物。版本:openjdk版本“1.8.0_66-internal”openjdk运行时环境(build 1.8.0_66-internal-b17)openjdk 64位服务器VM(build 25.66-b17,混合模式)刷新没有帮助。我已经将其重定向到一个文件中,无论是否重定向,问题都会发生。