Springboot命令注入属性[--]和[-D]的区别

之前在用shell中的启动命令
nohup java -jar ./$appName -Xmx512m -Xms512m -Xss512k -XX:MaxDirectMemorySize=1G -XX:+UseG1GC 
-XX:MaxGCPauseMillis=200 -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=40 -XX:+PrintGCDateStamps 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+HeapDumpOnOutOfMemoryError 
-XX:+DisableExplicitGC -XX:-OmitStackTraceInFastThrow -XX:+PrintCommandLineFlags -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 
-Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 --apollo.meta=http://10.7.xxx.1x2:7080 > ./server.out 2>&1 &

问题:-jar后面设置-D参数是无效的。

-D 系统属性注入

Java,启动jar 命令:
java [ options ] -jar file.jar [ arguments ]
Java HotSpot VMs针对,当前运行时环境,提供了一套调准的options

-Dproperty=value
Sets a system property value.
 #如果值是包含空格的字符串,则必须用双引号将该字符串括起来:
If value is a string that contains spaces, then you must enclose the string in double quotation marks:
java -Dmydir="some string" SomeClass

**特别注意:-D命令,需要在jar包之前。**不然会出现像我一开始说的问题。

– 属性赋值

image.png

测试总结
  1. –属性赋值若在-jar之前,则脚本错误,无法启动。
    日志肯定不会打印,因为系统起不来。可以在最后设置转向输出: > ./server.out 2>&1 &
#无法识别的选项
Unrecognized option: --spring.profiles.active=sit
#错误:无法创建Java虚拟机。
Error: Could not create the Java Virtual Machine.
#错误:发生致命异常。程序将退出。
Error: A fatal exception has occurred. Program will exit.
  1. –属性赋值为linux的shell内部命令,朋友说的,暂未证实。目前测试来看,–只能放在-jar后,对相应属性赋值。
  2. -D为Java内部命令,必须放在-jar前,在其后则无效。
  3. 目前来看,既然-D和–都能实现属性注入,最好还是使用spring自带的-D。
  4. 最终启动命令修改如下,(为了方便展示,中间有回车,若使用记得去除)。
    • 一般来讲,启动命令注入的参数基本为不变参数,类似于UTF-8这种格式设置。
    • -Dapollo这种ip配置变更可能性大,最好还是放在jar包同级目录config文件夹下。
nohup java  -Xmx512m -Xms512m -Xss512k -XX:MaxDirectMemorySize=1G -XX:+UseG1GC 
-XX:MaxGCPauseMillis=200 -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=40 -XX:+PrintGCDateStamps 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+HeapDumpOnOutOfMemoryError 
-XX:+DisableExplicitGC -XX:-OmitStackTraceInFastThrow -XX:+PrintCommandLineFlags -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 
-Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dapollo.meta=http://10.7.xxx.1x2:7080 -jar ./$appName > ./server.out 2>&1 &
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值