命令行参数启动时的一个坑
原创2025年3月14日小于 1 分钟
背景
以下两个写法有区别吗: 写法1:
java -jar sono_ai_task-2.0.jar --spring.profiles.active=prod -Xms1024m -Xmx2500m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m
写法2:
java -jar --spring.profiles.active=prod -Xms1024m -Xmx2500m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m sono_ai_task-2.0.jar
答案
两个写法是有区别的,两个写法都有问题,正确的应该是下边这个,写在jar包之前的参数会被jvm虚拟机识别,卸载jar后面的是当成应用程序参数传递给main函数了
java -Xms1024m -Xmx2500m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -jar sono_ai_task-2.0.jar --spring.profiles.active=prod