java启动命令详解

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8002 -server -Xms4g -Xmx6g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/data/dump.bin -Dfile.encoding=UTF-8 -Djava.awt.headless=true -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=16m -XX:NewRatio=4 -XX:InitiatingHeapOccupancyPercent=45 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=4 -Xshare:off org.springframework.boot.loader.JarLauncher -Dprojectname=gikam -Dlog4j2.formatMsgNoLookups=true &

各部分分析

  1. Java 启动命令

    • java: 启动 Java 虚拟机的命令。
  2. 调试代理

    • -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8002:
      • -agentlib:jdwp: 启用 Java 调试接口 (JDWP)。
      • transport=dt_socket: 使用 socket 传输协议。
      • server=y: 作为调试服务器启动。
      • suspend=n: 启动后不等待调试器连接。
      • address=8002: 监听的端口号为 8002。
  3. JVM 选项

    • -server: 使用服务器模式优化性能,适合长期运行的应用。
    • -Xms4g: 设置初始堆内存为 4GB。
    • -Xmx6g: 设置最大堆内存为 6GB。
    • -XX:+HeapDumpOnOutOfMemoryError: 在发生内存溢出错误时生成堆转储文件。
    • -XX:HeapDumpPath=/data/data/dump.bin: 指定堆转储文件的存储路径。
    • -Dfile.encoding=UTF-8: 设置文件编码为 UTF-8。
    • -Djava.awt.headless=true: 在无图形环境下运行 Java AWT(用于图形界面)应用。
    • -XX:+UseG1GC: 启用 G1 垃圾收集器,适合大内存的应用。
    • -XX:MaxGCPauseMillis=200: 最大垃圾回收暂停时间为 200 毫秒。
    • -XX:G1HeapRegionSize=16m: G1 垃圾收集器中每个堆区域的大小为 16MB。
    • -XX:NewRatio=4: 设置新生代与老年代的比例,表示新生代的大小为总堆的 1/5。
    • -XX:InitiatingHeapOccupancyPercent=45: 当堆内存占用达到 45% 时开始进行并行垃圾回收。
    • -XX:ParallelGCThreads=8: 设置并行垃圾回收线程数为 8。
    • -XX:ConcGCThreads=4: 设置并发垃圾回收线程数为 4。
    • -Xshare:off: 禁用类数据共享 (CDS)。
  4. Java 应用程序入口

    • org.springframework.boot.loader.JarLauncher: 指定应用程序的入口类,通常是 Spring Boot 应用程序的启动类。
  5. 系统属性

    • -Dprojectname=gikam: 设置名为 projectname 的系统属性,其值为 gikam,可以在代码中通过 System.getProperty("projectname") 获取。
    • -Dlog4j2.formatMsgNoLookups=true: 在 Log4j2 中启用格式化消息的安全设置,防止查找敏感信息(Log4j2 漏洞修复)。
  6. 后台运行

    • &: 将该命令放入后台运行,使得终端可以继续使用。

总结

这条命令设置了一个相对复杂的 Java 应用程序的运行环境,适用于高性能和稳定性要求的生产环境。通过合理配置堆内存、垃圾回收策略和调试参数,能够有效地提高应用程序的性能并减少内存管理上的问题。同时,它也考虑到了安全性,特别是在处理 Log4j2 的消息格式时。

posted @ 2024-10-24 19:24  Recouar  阅读(27)  评论(0编辑  收藏  举报