首页 > 编程语言 >java启动命令详解

java启动命令详解

时间:2024-10-24 19:21:12浏览次数:1  
标签:Java 启动 server XX 详解 内存 设置 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 的消息格式时。

标签:Java,启动,server,XX,详解,内存,设置,java,垃圾
From: https://www.cnblogs.com/huxiaoyang/p/18500296

相关文章

  • JavaFX+JavaCV实现批量视频处理及批量生成视频开发笔记--003,批量视频混剪功能设计与代
    我要使用JavaFX+JavaCV实现一个桌面应用,可以打包成Windows和Mac的桌面应用。实现的功能是:批量视频混剪。具体操作是:在界面上选择一个文件夹或多个视频文件,对文件夹中的所有视频文件(仅.mp4格式)或者选中的文件进行处理,随机截取原视频中指定长度的视频片段(如5秒),拼接成多个新的......
  • 梯度下降(Gradient Descent)详解
    梯度下降(GradientDescent)详解梯度下降是一种优化算法,广泛应用于机器学习和深度学习中,用于最小化损失函数,即通过调整参数来减少模型错误的方法。梯度下降的核心思想是:通过计算损失函数的梯度(即导数),然后沿着梯度下降的方向更新模型的参数,以达到减少损失的目的。基本原理......
  • 12万字的java面试题及答案整理(2024新版)
    前言本来想着给自己放松一下,刷刷博客,慕然回首,final有哪些用法?static都有哪些用法?java的精度算法?java运算逻辑?异常处理?似乎有点模糊了,那就大概看一下Java基础面试题吧。好记性不如烂键盘***12万字的java面试题整理***final有哪些用法?final也是很多面试喜欢问的地方,但我觉得这个......
  • 大厂的JAVA经典面试题-初中级
    前言本来想着给自己放松一下,刷刷博客,慕然回首,final有哪些用法?static都有哪些用法?java的精度算法?java运算逻辑?异常处理?似乎有点模糊了,那就大概看一下Java基础面试题吧。好记性不如烂键盘***12万字的java面试题整理***final有哪些用法?final也是很多面试喜欢问的地方,但我觉......
  • BeginnersBook-Java-示例-一-
    BeginnersBookJava示例(一)原文:BeginnersBook协议:CCBY-NC-SA4.0Java程序:计算复合利率原文:https://beginnersbook.com/2019/07/java-program-to-calculate-compound-interest/在本教程中,我们将编写一个java程序来计算复合利率。复利计算公式使用以下公式计算复利:......
  • BeginnersBook-Java-集合教程-一-
    BeginnersBookJava集合教程(一)原文:BeginnersBook协议:CCBY-NC-SA4.0如何在Java中对ArrayList进行排序原文:https://beginnersbook.com/2013/12/how-to-sort-arraylist-in-java/在本教程中,我们分享了对ArrayList<String>和ArrayList<Integer>进行排序的示例。另请阅......
  • BeginnersBook-Java-IO-教程-一-
    BeginnersBookJavaIO教程(一)原文:BeginnersBook协议:CCBY-NC-SA4.0如何在Java中创建文件原文:https://beginnersbook.com/2014/01/how-to-create-a-file-in-java/在本教程中,我们将了解如何使用createNewFile()方法在Java中创建文件。如果文件在指定位置不存在并且......
  • HowToDoInJava-Java-教程-二-
    HowToDoInJavaJava教程(二)原文:HowToDoInJava协议:CCBY-NC-SA4.0JVM内存模型/结构和组件原文:https://howtodoinjava.com/java/garbage-collection/jvm-memory-model-structure-and-components/每当执行Java程序时,都会保留一个单独的存储区,用于存储应用程序代码的各......
  • StudyTonight-Java-中文教程-六-
    StudyTonightJava中文教程(六)原文:StudyTonight协议:CCBY-NC-SA4.0JavaCharacter.isLetter(char)方法原文:https://www.studytonight.com/java-wrapper-class/java-character-isletterchar-ch-methodJavaisLetter(charch)方法是Character类的一部分。此方法用于检查指......
  • StudyTonight-Java-中文教程-二-
    StudyTonightJava中文教程(二)原文:StudyTonight协议:CCBY-NC-SA4.0JavaFloat类原文:https://www.studytonight.com/java/float-class.phpFloat类将基元类型的浮点值包装在对象中。Float类型的对象包含一个类型为浮点的字段。此外,此类提供了几种将浮点转换为字符串和将......