Java 启动服务时指定JVM(Java 虚拟机)的参数配置说明

示例:java -jar -Xms1024m -Xmx1024m -Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump.hprof

-Xms1024m

设置 JVM 启动时的初始堆内存大小为 1024MB。这是 JVM 启动时分配给堆内存的初始值,避免每次垃圾回收后都重新分配内存。

-Xmx1024m

设置 JVM 堆内存的最大值为 1024MB。当应用程序需要更多内存时,JVM 可以将堆内存扩展到这个最大值。

-Duser.timezone=Asia/Shanghai

设置 Java 程序的默认时区为上海时区。这对于处理日期和时间相关的操作非常重要,确保程序在不同地区运行时时间显示正确。

-Dfile.encoding=utf-8

设置文件编码为 UTF-8。这确保了程序在读取和写入文件时使用统一的字符编码,避免中文乱码等问题。

-XX:+HeapDumpOnOutOfMemoryError

启用堆内存溢出时生成堆转储文件(heap dump)。当 JVM 发生 OutOfMemoryError 时,会自动创建一个 heapdump.hprof 文件,便于后续分析内存泄漏问题。

-XX:HeapDumpPath=heapdump.hprof

指定堆转储文件的生成路径和文件名。在发生内存溢出时,JVM 会将堆内存的快照保存到指定路径下的 heapdump.hprof 文件中。

这些参数共同作用,确保 Java 应用程序在启动时具有合适的内存配置、正确的时区和编码设置,并在出现内存问题时能够生成调试信息。

‌-D 参数‌:

用于设置系统属性。你可以通过 System.getProperty() 方法在 Java 程序中获取这些属性的值。

例如:-Duser.timezone=Asia/Shanghai 设置了时区属性。

‌-X 参数‌:

这是非标准的 JVM 选项,用于设置一些 JVM 的特定行为,通常用于调整 JVM 的运行时参数。

例如:-Xms1024m 设置初始堆内存大小,-Xmx1024m 设置最大堆内存大小。

‌-XX 参数‌:

这是高级选项,用于更深入地控制 JVM 的行为和性能。这些选项通常用于开发或调试阶段,可能需要特定的系统权限,并且在不同 JVM 实现中可能不完全一致。

例如:-XX:+HeapDumpOnOutOfMemoryError 启用内存溢出时生成堆转储文件,-XX:HeapDumpPath=heapdump.hprof 指定堆转储文件的路径。

简单来说:

‌-D‌ 用于设置系统属性

‌-X‌ 用于设置 JVM 运行时参数,如内存大小

‌-XX‌ 用于高级 JVM 性能调优和行为控制

相关推荐
z123456789868 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
GIS阵地8 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
yaoxin5211239 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
groundhappy9 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
做个文艺程序员9 小时前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus
小钻风336610 小时前
Spring Boot 文件上传详解:深入理解 MultipartFile 的使用与原理
java·开发语言
其美杰布-富贵-李10 小时前
Spring Boot 工程开发全流程说明
java·spring boot·后端
qq_4523962311 小时前
第二篇:《Go 开发环境搭建:SDK、IDE、Module 与 Hello World》
开发语言·ide·golang
天青色等烟雨..11 小时前
全流程ArcGISPro空间分析、三维建模、可视化及Python融合应用技术
开发语言·python
丰锋ff11 小时前
1.2 Qt常用基础类型
开发语言·qt