【JAVA】java进程启动的 java options 解析

2024-07-14  本文已影响0人  Bogon

nohup jar -jar ${JAVA_OPTS} test.jar &

JAVA_OPTS如下:

APP_NAME=test
-Dservicename=test
APP_MAINCLASS=com.test.mobile.netty.server.Main
-XX:+UseG1GC
-Xmx1024m
-Xms512m
-Djava.io.tmpdir=/opt/tmp/test
-XX:+ParallelRefProcEnabled
-XX:+PrintGCDetails
-XX:+PrintAdaptiveSizePolicy
-XX:+PrintGCDateStamps
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/jarapp/test/logs
-Djava.awt.headless=true
-Dfile.encoding=utf-8
http_port=12365
InnerContextPaths=test/*
ZK_server=172.22.203.110:2181,172.22.203.86:2181,172.22.203.90:2181
-Dzookeeper.sasl.client=false

JAVA_OPTS 是一个环境变量,用于设置 Java 程序的运行参数。

在该例子中,JAVA_OPTS 包含了多个参数,让我们逐个解释:

  1. APP_NAME=test

    • 设置应用程序的名称为 test
  2. -Dservicename=test

    • 定义一个系统属性 servicename 的值为 test
  3. APP_MAINCLASS=com.test.mobile.netty.server.Main

    • 指定应用程序的主类为 com.test.mobile.netty.server.Main
  4. -XX:+UseG1GC

    • 使用 G1 垃圾回收器。
  5. -Xmx1024m

    • 设置 Java 虚拟机的最大内存为 1024MB。
  6. -Xms512m

    • 设置 Java 虚拟机的初始内存为 512MB。
  7. -Djava.io.tmpdir=/opt/tmp/test

    • 指定临时文件目录为 /opt/tmp/test
  8. -XX:+ParallelRefProcEnabled

    • 启用并行引用处理。
  9. -XX:+PrintGCDetails

    • 打印详细的垃圾回收日志。
  10. -XX:+PrintAdaptiveSizePolicy

    • 打印自适应大小策略的日志。
  11. -XX:+PrintGCDateStamps

    • 在垃圾回收日志中打印日期时间戳。
  12. -XX:+HeapDumpOnOutOfMemoryError

    • 在发生内存溢出错误时生成堆转储文件。
  13. -XX:HeapDumpPath=/opt/jarapp/test/logs

    • 指定堆转储文件的存储路径为 /opt/jarapp/test/logs
  14. -Djava.awt.headless=true

    • 设置 Java 运行环境为无图形界面模式。
  15. -Dfile.encoding=utf-8

    • 设置默认文件编码为 UTF-8。
  16. http_port=12365

    • 设置一个名为 http_port 的环境变量,其值为 12365
  17. InnerContextPaths=test/*

    • 设置一个名为 InnerContextPaths 的环境变量,其值为 test/*,可能用于指定一些内部上下文路径。
  18. ZK_server=172.22.203.110:2181,172.22.203.86:2181,172.22.203.90:2181

    • 设置一个名为 ZK_server 的环境变量,其值为 ZooKeeper 服务器的地址列表,用逗号分隔。
  19. -Dzookeeper.sasl.client=false

    • 设置一个名为 zookeeper.sasl.client 的系统属性,其值为 false,可能用于禁用 ZooKeeper 的 SASL 客户端认证。

这些参数一起定义了 Java 应用程序的运行环境和行为。
在你的命令中,nohup jar -jar ${JAVA_OPTS} test.jar &${JAVA_OPTS} 会被展开为所有这些参数,从而影响到 test.jar 的启动和运行。

在Java中,使用 -D 参数来设置系统属性的语法是固定的,其中的 D 并不是一个缩写,而是Java虚拟机(JVM)规定的标准参数格式之一。

具体来说:

Java虚拟机在启动时会解析这些参数,并将其转化为相应的系统属性供应用程序使用。
因此,使用 -D 是Java开发中常见的一种设置系统属性的方式,而 D 并没有特定的缩写意义,只是标记参数类型的一部分。

上一篇下一篇

猜你喜欢

热点阅读