有什么方法可以像 -XX:+PrintCompilation 一样重定向本机 JVM 输出的输出

Bee*_*ope 3 java debugging sun jvm-hotspot

一些热点 JVM 标志,例如-XX:+PrintCompilation,会导致输出出现在 stdout 或 stderr 上。GC 相关的输出,例如由 -verbose:gc 启用的输出,可以使用 重定向-Xloggc:<path>,但我找不到任何方法重定向其他本机输出,除了重定向整个过程(出于某些原因,这可能是不可取的,例如以及捕获所有 System.out 输出)。

eis*_*eis 5

+PrintCompilation 使用print_on(tty, message),从openjdk 源可以看出,直接打印到 tty,所以我认为重定向整个过程输出是您唯一的选择,而无需重新编译编译器。