在Java里如何配置Java程序启动参数_Java运行环境说明
发布时间 - 2026-02-01 00:00:00 点击率:次Java程序启动参数由JVM进程启动时通过命令行传入,必须置于-jar或主类名之前,否则被当作程序参数;常见参数包括内存(-Xms/-Xmx)、GC(-XX:+UseG1GC)、系统属性(-D)和调试(-XX:+HeapDumpOnOutOfMemoryError)等。
Java程序启动参数不是写在代码里的,而是由JVM进程启动时通过命令行或启动脚本传入的;配错参数可能导致OutOfMemoryError、类加载失败、GC行为异常,甚至JVM直接拒绝启动。
怎么传启动参数给Java程序
核心就是用java命令加参数再跟主类或JAR路径。顺序不能乱:JVM参数必须在-jar或主类名之前,否则会被当成程序参数传给main(String[])方法。
-
java -Xmx512m -XX:+UseG1GC -Dfile.encoding=UTF-8 -jar app.jar✅ 正确:JVM参数在-jar前 -
java -jar app.jar -Xmx512m❌ 错误:-Xmx512m变成程序参数,JVM完全忽略 - IDE(如IntelliJ)里要填在「Run Configuration」→「VM options」栏,不是「Program arguments
」
常见必须知道的JVM参数分类
参数分三类:标准(-X开头)、非标准(-XX:开头)、预览/实验性(需显式启用)。生产环境尤其注意-XX:参数的版本兼容性——比如-XX:+UseZGC在JDK 11+才稳定,JDK 8不识别会直接报错退出。
- 内存相关:
-Xms(初始堆)、-Xmx(最大堆)、-XX:MetaspaceSize(元空间初始大小) - GC相关:
-XX:+UseG1GC、-XX:+UseZGC、-XX:MaxGCPauseMillis=200 - 系统属性:
-Duser.timezone=Asia/Shanghai、-Dspring.profiles.active=prod - 调试诊断:
-XX:+HeapDumpOnOutOfMemoryError、-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
Spring Boot应用的特殊处理
Spring Boot打包成fat jar后,仍走标准JVM参数机制,但部分配置(如spring.*)可通过-D或外部application.properties覆盖。注意优先级:命令行-D > application.properties > 默认值。
- 想指定配置文件:
java -Dspring.config.location=file:/opt/conf/application-prod.yml -jar app.jar - 避免踩坑:
-D参数里有空格或特殊字符(如=)必须用引号包裹,例如-Dlogging.level.com.example=DEBUG - 不要混淆:
--server.port=8081是Spring Boot的「程序参数」,不是JVM参数,必须放在-jar之后
最常被忽略的是参数作用域——-Xmx只管堆内存,不影响直接内存(-XX:MaxDirectMemorySize)、线程栈(-Xss)或元空间;线上OOM时,得先看日志里报的是哪块内存溢出,再对症调参。
# java
# app
# 栈
# ai
# 配置文件
# 作用域
# spring
# spring boot
# xss
# jvm
# 参数作用域
# String
# 堆
# 线程
# location
# ide
# 的是
# 命令行
# 启动时
# 放在
# 是由
# 线上
# 报错
# 可通过
# 写在
# 则会
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
在centOS 7安装mysql 5.7的详细教程
JavaScript常见的五种数组去重的方式
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
个人摄影网站制作流程,摄影爱好者都去什么网站?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
b2c电商网站制作流程,b2c水平综合的电商平台?
Python文件流缓冲机制_IO性能解析【教程】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
大同网页,大同瑞慈医院官网?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何在云虚拟主机上快速搭建个人网站?
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Laravel如何记录自定义日志?(Log频道配置)
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
QQ浏览器网页版登录入口 个人中心在线进入
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
php485函数参数是什么意思_php485各参数详细说明【介绍】
浅谈javascript alert和confirm的美化
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
🚀拖拽式CMS建站能否实现高效与个性化并存?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
LinuxCD持续部署教程_自动发布与回滚机制
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
java中使用zxing批量生成二维码立牌
如何快速搭建虚拟主机网站?新手必看指南
三星、SK海力士获美批准:可向中国出口芯片制造设备
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Laravel模型事件有哪些_Laravel Model Event生命周期详解
node.js报错:Cannot find module 'ejs'的解决办法
网站图片在线制作软件,怎么在图片上做链接?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
公司网站制作价格怎么算,公司办个官网需要多少钱?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
浅析上传头像示例及其注意事项


