You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Spring Boot Gradle插件配置JAVA_OPTS

解决Spring Boot Gradle插件生成启动脚本未应用JVM参数的问题

你遇到的问题核心在于Spring Boot Gradle插件会覆盖Application插件的启动脚本生成逻辑,所以你配置的applicationDefaultJvmArgs并不会被应用到Spring Boot生成的启动脚本里。下面给你两种直接有效的解决方案:

方案一:使用Spring Boot插件专属配置

这是Spring Boot官方推荐的配置方式,直接在springBoot闭包中定义默认JVM参数:

plugins {
    id 'java'
    id 'application'
    id 'org.springframework.boot' version '2.0.2.RELEASE'
    id "io.spring.dependency-management" version "1.0.5.RELEASE"
}

version '1.0-SNAPSHOT'

repositories {
    jcenter()
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

springBoot {
    mainClassName = "kic.data.server.Server"
    defaultJvmArgs = ['-Dkic.data.persistency.path=./data']
}

方案二:直接配置启动脚本任务

如果你更倾向于直接控制启动脚本的生成逻辑,可以直接修改startScripts任务的defaultJvmOpts属性:

plugins {
    id 'java'
    id 'application'
    id 'org.springframework.boot' version '2.0.2.RELEASE'
    id "io.spring.dependency-management" version "1.0.5.RELEASE"
}

version '1.0-SNAPSHOT'

repositories {
    jcenter()
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

mainClassName = "kic.data.server.Server"

startScripts {
    defaultJvmOpts = ['-Dkic.data.persistency.path=./data']
}

验证配置是否生效

重新执行gradlew bootJar(或gradlew build)生成启动脚本,打开build/scripts/server文件,你会看到DEFAULT_JVM_OPTS已经被正确填充:

Add default JVM options here. You can also use JAVA_OPTS and SERVER_OPTS to pass JVM options to this script.

DEFAULT_JVM_OPTS="-Dkic.data.persistency.path=./data"

额外提醒:如果同时配置了applicationDefaultJvmArgs和Spring Boot的defaultJvmArgs,后者会覆盖前者在启动脚本中的生效范围——applicationDefaultJvmArgs只会影响run任务,不会作用于Spring Boot生成的独立启动脚本。

内容的提问来源于stack exchange,提问作者KIC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:06:02