我正在开发一个应用程序,它可以在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的配置变量。 那么额外的论点是从哪里来的?
答案 0 :(得分:1)
-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"