如何在 Java 9+ 中设置默认垃圾收集器?

How to set default garbage collector in Java 9+?

是否有我可以使用的系统范围或帐户范围的配置文件?我不想使用 MAVEN_OPTS,因为分叉的 java 进程不会接收它。

有一个lib/jvm.cfg,虽然我不明白它的语义或者它是否可以用于那个目的。

AFAIK,没有系统范围的方法来为所有 Java 进程设置 JVM 标志。 3rd 方工具通常使用各种环境变量。其中一些描述如下:

但是,当您使用 java 命令直接启动应用程序时,这些并不适用。

"jvm.cfg" 文件没有帮助。它实现了一种(未记录的)机制来配置 java 命令的 "known JVMs" 和 select 它们的 JVM 选项。 (有关详细信息,请参阅 OpenJDK 11 源代码树中的 src/java.base/share/native/libjli/java.c。)


这给你留下了笨重/笨拙/脆弱的替代品,例如:

  • java 定义为 shell 函数或别名
  • java 命令编写包装脚本,并将其放在实际 java 二进制文件之前的 PATH 中。