在 Heroku 中拾取 JAVA_TOOL_OPTIONS 包含 RMI 参数

Picked up JAVA_TOOL_OPTIONS in Heroku contain RMI parameters

我正在开发一个应用程序,它在 Heroku 中成功运行。我使用管道功能,因此在开发、暂存和生产中使用相同的代码。

在深入查看开发应用程序的日志时,有一行让我有点困惑:

Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -Dfile.encoding=UTF-8  -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1098 -Dcom.sun.management.jmxremote.rmi.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=true -Djava.rmi.server.hostname=172.xx.xx.xx -Djava.rmi.server.port=1099

一般来说,我的理解是,JVM 从环境中获取一些默认参数(如内存设置等)。 我质疑自己,所有这些 jmx 和 rmi 参数来自哪里。在我的生产应用中,它们没有出现。

管道开发阶段的环境有什么特别之处吗? 我找不到它的任何文档。

应用配置:

我没有任何名为 JAVA_TOOL_OPTIONS 的配置变量。 那么附加参数是从哪里来的呢?

-Xmx300m -Xss512k -Dfile.encoding=UTF-8 选项来自 Java buildpack,记录在 Heroku's Dev Center page for Java

RMI 选项可能来自 Heroku Exec and/or Heroku CLI for Java。如果你需要禁用这些,你可以 运行:

$ heroku config:set HEROKU_DISABLE_JMX="true"