java -jar

java 复制代码
java [JVM参数] -jar [jar文件路径] [应用参数,包括springboot特定参数]

*  JVM 参数必须在-jar之前
*  应用参数一般在jar文件路径之后
java 复制代码
java -jar excel.jar
java -jar -Dloader.path=libx /path/to/yourApp.jar
java -jar -Dloader.path=libx /path/to/yourApp.jar --server.port=8079
java -Xms512m -Xmx2g -Dlogging.level.root=DEBUG -jar /path/to/yourApp.jar --spring.profiles.active=prod

1. JVM 系统属性

配置JVM或运行在JVM上的应用程序的各种动态设置的,它们可以通过 System.getProperty("property") 在Java代码中访问

java 复制代码
-Dproperty=value

常见的系统属性

  • 日志相关

    -Djava.util.logging.config.file=path/to/logging.properties:指定日志配置文件的路径。

    -Dlogback.configurationFile=path/to/logback.xml:对于使用Logback的日志框架,指定其配置文件路径。

    -Dlogging.level.root=LEVEL:设置root logger的日志级别(如DEBUG, INFO, WARN, ERROR等)。

  • 资源和类路径

    -Djava.library.path=path:指定本地库(如.dll或.so文件)的搜索路径。

    -Djava.endorsed.dirs=path:指定Javaendorsed标准覆盖目录的路径。
    -Dloader.path=path:在Spring Boot应用中,指定额外的类路径或资源目录。

  • 网络连接

    -Dhttp.proxyHost=proxy.example.com:设置HTTP代理主机。

    -Dhttp.proxyPort=8080:设置HTTP代理端口。

    -Dhttps.proxyHost=proxy.example.com:设置HTTPS代理主机。
    -Dfile.encoding=UTF-8:指定文件编码。

  • 国际化和本土化

2. springboot特定参数

前提: 基于springboot的应用

java 复制代码
--spring.*=value

常见:
--spring.profiles.active
--server.port

--spring.config.location

--spring.config.name
--logging.level.root=DEBUG

--spring.datasource.url=jdbc:mysql://localhost/test

--server.port 是Spring Boot为统一配置嵌入式服务器(如Tomcat、Jetty或Undertow)提供的标准化配置属性

如果见到--httpPort,这一般是应用自定义的或者第三方库或框架指定的配置参数

总之,针对springboot 应用,推荐用--server.port来指定http服务端口
-Dlogging.level.root=LEVEL 和 --logging.level.root=DEBUG 都是用来设置应用程序日志级别的方法,前者更通用,不仅限于springboot框架,后者只能用于springboot框架

3. 应用参数

直接在 java -jar 后面跟上参数,无需前缀,这些参数将作为应用程序的命令行参数传递给 main 方法。例如:java -jar myapp.jar param1=value1 param2=value2,这些参数可以通过 public static void main(String[] args) 中的 args 数组访问。

4. JVM启动参数

这些参数直接控制java虚拟机的行为,提供了对JVM更底层或特定于实现的配置能力,直接作用于JVM的启动和运行时行为,例如内存分配、垃圾收集策略、即时编译器设置。

往往以-X或者-XX开头,常常用于jvm调优

  • 堆内存设置

    -Xms: 确定初始堆大小 (-Xms),例如,使用 -Xms128m 表示初始堆大小为128MB

    -Xmx:参数定义了JVM堆内存可增长到的最大值,例如,-Xmx1024m 表示最大堆大小为1GB。

  • 线程栈大小调整:

    -Xss:设置每个线程的栈大小。例如,-Xss256k 将每个线程的栈大小设置为256KB。

  • 年轻代与老年代配置:

    -Xmn:设置年轻代(Young Generation)的总大小。例如,-Xmn1g 将年轻代大小设置为1GB。

    -XX:NewRatio=:设置年轻代与老年代的比例。例如,-XX:NewRatio=3 表示年轻代与老年代的比例为1:3。

  • 垃圾回收器选择:

    -XX:+UseSerialGC:使用串行垃圾回收器。

    -XX:+UseParallelGC:使用并行垃圾回收器。

    -XX:+UseConcMarkSweepGC 或 -XX:+UseG1GC:分别使用CMS垃圾回收器和G1垃圾回收器。

  • 元空间(Metaspace)配置(Java 8及以上版本):

    -XX:MetaspaceSize=:初始的元空间大小。

    -XX:MaxMetaspaceSize=:元空间的最大大小。

  • 性能和监控:

    -XX:CompileThreshold=:指定热点代码被JIT编译的阈值。

    -XX:+PrintGCDetails:打印垃圾回收的详细信息。

    -Xloggc::指定垃圾回收日志的输出文件路径。

  • 线程和并发:

    -XX:ParallelGCThreads=:设置并行垃圾回收时使用的线程数。

    -XX:MaxParallelGCThreads=:设置最大并行垃圾回收线程数。

  • 直接内存限制:

    -XX:MaxDirectMemorySize=:设置可以直接内存的最大大小。

相关推荐
ChineHe2 分钟前
基础篇003_Python基础语法
开发语言·人工智能·python
学编程就要猛2 分钟前
JavaEE初阶:文件操作和IO
java·java-ee
ba_pi3 分钟前
每天写点什么2026-03-19-Doris三种存储模型
java·数据库·mysql
程序员老乔6 分钟前
Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(二):Valhalla落地,值类型如何让电商DTO内存占用暴跌
java·spring boot·c#
SuniaWang12 分钟前
《Spring AI + 大模型全栈实战》学习手册系列· 专题二:《Milvus 向量数据库:从零开始搭建 RAG 系统的核心组件》
java·人工智能·分布式·后端·spring·架构·typescript
张小洛15 分钟前
Spring 常用类深度剖析(工具篇 02):ReflectionUtils——优雅操作反射的利器
java·后端·spring·工具类·spring常用类
沉沙丶18 分钟前
关于matlab分析电流THD的一些探究和记录
开发语言·matlab·电机控制·foc·永磁同步电机·模型预测·预测控制
chase。20 分钟前
Python包构建工具完全指南:python -m build 使用详解
开发语言·chrome·python
SuperEugene24 分钟前
前端 utils 工具函数规范:拆分 / 命名 / 复用全指南,避开全局污染等高频坑|编码语法规范篇
开发语言·前端·javascript
GoodStudyAndDayDayUp32 分钟前
RUO-VUE-PRO权限关联sql
java·数据库·sql