【问题标题】:JAVA set Garbage collection optionsJAVA设置垃圾收集选项
【发布时间】:2018-07-15 15:43:51
【问题描述】:

我想从在 JVM 上运行的程序中获取 GC 日志。我知道有可能让那些使用

-Xloggc:GCLog.txt  -verbose:gc -XX:+PrintGCDateStamps -XX:+UseSerialGC 

使用运行应用程序时的参数

java -jar "jar_file". 

但在这种情况下,我不能通过提供参数以这种方式运行程序,而是有办法在运行应用程序之前指定它们吗?

例如,我们可以使用导出设置XmxXms

JVM_MEM_OPTS="-Xms100m -Xmx100m"

在运行java应用程序之前。)是否有类似的方法在运行应用程序之前指定GC参数。

谢谢

【问题讨论】:

  • 看起来 java exec 有一个包装器。您是否将指定的 GC JVM 标志添加到 JVM_MEM_OPTS 变量中,以及 java 包装器中是否还有其他环境变量;例如JAVA_OPTS ?您需要查看 java 包装器以及 java 可执行文件是如何被调用的。
  • JVM 读取JVM_MEM_OPTS变量。使用某些参数启动 JVM 是 Java 启动器的工作。由于您使用非标准 Java 启动器,因此您需要查阅该启动器的文档。你是怎么知道JVM_MEM_OPTS的?
  • HotSpot JVM 读取 JAVA_TOOL_OPTIONS_JAVA_OPTIONS 变量。您可以尝试其中一种。

标签: java garbage-collection jvm


【解决方案1】:

例如,我们可以使用 export 设置 Xmx、Xms 值

JVM_MEM_OPTS="-Xms100m -Xmx100m"

这种方式不是标准的,也没有在 Java 文档中引用。
JVM_MEM_OPTSJAVA_OPTS 或任何环境变量只会设置 JVM 选项,因为您用于启动 JVM 的工具/程序会传输它在所执行的java 命令的 JVM 选项中。
例如 JAVA_OPTS 在 Tomcat 脚本中被识别(尤其是 catalina.sh/bat)

-Xms100m -Xmx100m as -Xloggc:GCLog.txt -verbose:gc -XX:+PrintGCDateStamps -XX:+UseSerialGCJVM options
如果您不想在 java 命令中直接传递这些选项,则必须使用允许使用自定义环境变量的工具:创建一个使用此环境变量作为值的脚本(特定于操作系统) JVM选项如(linux方式):

java $JAVA_OPTS -jar "jar_file"

【讨论】:

  • 感谢您的回答。但是我需要知道的是有没有export JVM_MEM_OPTS之类的选项来设置gc参数。
  • 原因是我无法以 java -jar 的形式启动我的程序。它使用不同的命令,但在 Neth 下它使用 Java
猜你喜欢
  • 1970-01-01
  • 2010-12-13
  • 2010-11-01
  • 1970-01-01
  • 2011-11-07
  • 2016-03-26
  • 2011-02-25
  • 1970-01-01
相关资源
最近更新 更多