如何设置可执行Spring Boot jarfile的JVM属性?

作为后续问题, 如何构建一个Spring Boot jar文件,systemd可以直接作为服务执行? ,如何设置可执行Spring Boot jarfile的JVM属性? 例如,如何设置最大堆大小(即-Xmx2048m )?

your-app.conf your-app.jar带有内容your-app.jar旁边

 JAVA_OPTS=-Xmx2048M 

有关详细信息,请参阅部署脚本自定义指南或launch.script 。

这不是您问题的直接答案,而是解决问题的方法。

我从未选择过可执行jar,因为我相信在app启动时从外部设置参数会更灵活。

这是通过命令行设置JVM系统属性和应用程序属性的方法:

 java -Xmx2048m -jar application.jar --paramname="paramvalue" 

然后,您可以在Spring Bean或Service中获取参数paramname ,如下所示:

 @Value("${paramname}") private String paramname; 

您可以在此处详细了解该主题:

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

编辑

看看这个看起来像你正在寻找的答案:

https://stackoverflow.com/a/33856394/272180

  • 根据1 ,可以在环境变量_JAVA_OPTIONS设置JVM属性。
  • 根据2 ,环境变量JAVA_TOOL_OPTIONS也设置JVM属性。