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

如何向Gradle 7.4的bootRun任务传递javax.net.ssl.keyStore系统属性

Gradle bootRun 命令行传递JVM系统属性(无需修改build.gradle)

要给Spring Boot应用传递javax.net.ssl.keyStore这类JVM系统属性,不能直接混在--args里,也不能直接给Gradle进程传-D参数,正确的方式是用--jvm-args指定应用进程的JVM启动参数:

正确命令格式

方式一:分开传递应用命令行参数和JVM属性

./gradlew bootRun --args="--spring.profiles.active=dev" --jvm-args="-Djavax.net.ssl.keyStore=/file"

方式二:把所有JVM相关属性统一放--jvm-args里

./gradlew bootRun --jvm-args="-Dspring.profiles.active=dev -Djavax.net.ssl.keyStore=/file"

之前命令失效的原因

  • 将-Djavax.net.ssl.keyStore放在--args中:--args传递的是Spring Boot应用的业务命令行参数,JVM系统属性属于进程启动参数,不属于这个范畴,Spring Boot不会自动将其转为系统属性。
  • 直接在./gradlew后加-D参数:这些参数会被Gradle自身的JVM进程接收,不会传递给启动的Spring Boot应用进程,所以应用中无法读取到这些属性。

验证方法

可以在应用主类中添加代码打印系统属性,确认是否生效:

@SpringBootApplication
public class YourApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
        System.out.println("javax.net.ssl.keyStore: " + System.getProperty("javax.net.ssl.keyStore"));
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:55:25