通用 JVM 参数
这些参数直接传递给 JVM,用于控制内存、垃圾回收等。
-
-Xms<size>
: 设置初始堆大小。 -
-Xmx<size>
: 设置最大堆大小。 -
-XX:+HeapDumpOnOutOfMemoryError
: 在内存溢出时生成堆转储文件。 -
-XX:HeapDumpPath=<path>
: 指定堆转储文件的路径。 -
-XX:+PrintGCDetails
: 打印详细的垃圾回收信息。 -
-Xms :设置JVM初始堆内存大小。例如,
-Xms512m
表示初始堆内存为512MB。 -
-Xmx :设置JVM最大堆内存大小。例如,
-Xmx1024m
表示最大堆内存为1024MB。 -
-XX:MaxMetaspaceSize :设置元空间的最大大小。例如,
-XX:MaxMetaspaceSize=512m
表示元空间最大为512MB。 -
-XX:MetaspaceSize :设置元空间的初始大小。例如,
-XX:MetaspaceSize=256m
表示元空间初始大小为256MB。 -
-XX:InitialBootClassLoaderMetaspaceSize :设置引导类加载器的元空间大小。例如,
-XX:InitialBootClassLoaderMetaspaceSize=64m
表示引导类加载器元空间初始大小为64MB。 -
-XX:NewRatio :设置年轻代与老年代的比例。例如,
-XX:NewRatio=2
表示年轻代与老年代的大小比例为1:2。 -
-XX:SurvivorRatio :设置Eden区与Survivor区的比例。例如,
-XX:SurvivorRatio=8
表示Eden区与Survivor区的大小比例为8:1。 -
-XX:MaxTenuringThreshold :设置对象从年轻代晋升到老年代的年龄阈值。例如,
-XX:MaxTenuringThreshold=6
表示对象在年轻代存活6次后晋升到老年代。 -
-XX:+UseG1GC:启用G1垃圾收集器。
-
-XX:+UseConcMarkSweepGC:启用CMS垃圾收集器。
Spring Boot 特定参数
--server.port=<port>
: 设置应用运行的端口号。--spring.profiles.active=<profile>
: 激活特定的 Spring Profile。--logging.level.<package>=<level>
: 设置特定包或类的日志级别(如DEBUG
,INFO
,WARN
,ERROR
)。--spring.config.location=<location>
: 指定外部配置文件的位置。--spring.datasource.url=<url>
: 设置数据源 URL。--spring.datasource.username=<username>
: 设置数据源用户名。--spring.datasource.password=<password>
: 设置数据源密码。--spring.jpa.hibernate.ddl-auto=<value>
: 设置 Hibernate DDL 自动生成策略(如none
,validate
,update
,create
,create-drop
)。--spring.main.banner-mode=<mode>
: 设置启动横幅模式(如off
,console
,log
)。--spring.application.name=<name>
: 设置应用名称。
其他常见参数
--spring.output.ansi.enabled=<true|false>
: 启用或禁用 ANSI 颜色输出。--spring.devtools.restart.enabled=<true|false>
: 启用或禁用 DevTools 重启功能。--spring.datasource.initialization-mode=<always|embedded|never>
: 设置数据源初始化模式。--spring.jpa.show-sql=<true|false>
: 显示 SQL 语句。--spring.h2.console.enabled=<true|false>
: 启用或禁用 H2 控制台。
端口号
通过--server.port
参数设置应用运行的端口号
java -jar your-app.jar --server.port=8081
配置文件
通过--spring.config.location
参数指定外部配置文件的位置。
java -jar your-app.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
环境变量
通过--spring.profiles.active
参数激活特定的Spring Profile。
java -jar your-app.jar --spring.profiles.active=dev
JVM参数
直接传递JVM参数,如内存设置等。
java -Xms512m -Xmx1024m -jar your-app.jar
配置文件
ava -jar your-app.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
日志级别
你可以使用--logging.level
参数来设置不同包或类的日志级别。例如:
java -jar your-app.jar --logging.level.org.springframework=DEBUG
这将把Spring框架的日志级别设置为DEBUG。
生成Dump文件
如果你需要生成堆转储(heap dump)文件,可以使用以下参数:
java -jar your-app.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumpfile
这会在内存溢出时生成一个堆转储文件到指定路径。
Nacos相关参数
Nacos是一个动态服务发现、配置管理和服务管理平台。如果你的应用使用了Nacos,你可能需要配置Nacos的相关参数。
--spring.cloud.nacos.discovery.server-addr=<address>
: 设置 Nacos 服务发现服务器地址。--spring.cloud.nacos.config.server-addr=<address>
: 设置 Nacos 配置中心服务器地址。--spring.cloud.nacos.config.namespace=<namespace>
: 设置 Nacos 命名空间。--spring.cloud.nacos.config.group=<group>
: 设置 Nacos 配置组。
例如:
java -jar your-app.jar --spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 --spring.cloud.nacos.config.server-addr=127.0.0.1:8848
JVM
-
堆内存大小
- 参数 :
-Xms
(初始堆内存大小),-Xmx
(最大堆内存大小) - 示例 :
java -jar -Xms512m -Xmx1024m myapp.jar
- 说明:通过设置初始堆内存和最大堆内存,可以控制Java虚拟机使用的内存量。例如,上述命令将初始堆内存设置为512MB,最大堆内存设置为1024MB。
- 参数 :
-
垃圾回收日志
- 参数 :
-XX:+PrintGCDetails
(打印详细的GC日志) - 示例 :
java -jar -XX:+PrintGCDetails myapp.jar
- 说明:启用垃圾回收日志可以帮助开发者了解垃圾回收的情况,从而进行性能调优。
- 参数 :
-
远程调试
- 参数 :
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
- 示例 :
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 myapp.jar
- 说明:启用远程调试功能,允许开发者通过网络连接到正在运行的JVM实例进行调试。
- 参数 :
-
元空间大小
- 参数 :
-XX:MetaspaceSize
(元空间初始大小),-XX:MaxMetaspaceSize
(元空间最大大小) - 示例 :
java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m myapp.jar
- 说明:元空间用于存储类的元数据,如类的版本、字段、方法等信息。通过设置元空间的大小,可以避免因元空间不足导致的OutOfMemoryError。
- 参数 :
-
垃圾回收器选择
- 参数 :
-XX:+UseG1GC
(启用G1垃圾收集器) - 示例 :
java -jar -XX:+UseG1GC myapp.jar
- 说明:选择合适的垃圾回收器可以根据应用的特点和需求优化内存管理。G1垃圾收集器是一种面向低暂停时间的垃圾收集器,适用于大内存和多处理器的环境。
- 参数 :
-
系统属性设置
- 参数 :
-Dproperty=value
(设置系统属性) - 示例 :
java -jar -Dmy.property=myValue myapp.jar
- 说明 :通过设置系统属性,可以在运行时配置应用程序的行为。例如,上述命令设置了名为
my.property
的系统属性,其值为myValue
。
- 参数 :