【问题标题】:Spring Boot java.lang.IllegalArgumentException: URL must start with 'jdbc'Spring Boot java.lang.IllegalArgumentException:URL 必须以“jdbc”开头
【发布时间】:2021-03-09 18:51:33
【问题描述】:

在尝试启动我的项目时出现错误:

java.lang.IllegalArgumentException: URL 必须以 'jdbc' 开头

我在一个如下所示的 application.properties 文件中配置我的数据库连接:

spring.datasource.url=${JDBC_DATABASE_URL}
spring.datasource.username=${JDBC_DATABASE_USERNAME}
spring.datasource.password=${JDBC_DATABASE_PASSWORD}       

并且有一个获取 VM 选项的 maven/spring-boot 启动脚本:

-DJDBC_DATABASE_URL="jdbc:postgresql://localhost:5432/project"
-DJDBC_DATABASE_USERNAME="postgres"
-DJDBC_DATABASE_PASSWORD="postgres"

一些测试告诉我,VM 选项完全没有解决,但我不知道如何解决这个问题。

我的 IDE 是 IntelliJ 社区版。

效果很好。今天我将项目升级到 Java 15,但我认为这不应该导致这样的问题。

你知道配置被覆盖的地方吗?

【问题讨论】:

    标签: java spring postgresql spring-boot illegalargumentexception


    【解决方案1】:

    当您仅引用值时,引号字符将成为值的一部分,这意味着 URL 现在以 "jdbc 开头,因此您会收到错误消息“必须以 jdbc 开头”。

    你有两个选择:

    1. 不要引用:

      -DJDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/project
      -DJDBC_DATABASE_USERNAME=postgres
      -DJDBC_DATABASE_PASSWORD=postgres
      
    2. 引用整个论点:

      "-DJDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/project"
      "-DJDBC_DATABASE_USERNAME=postgres"
      "-DJDBC_DATABASE_PASSWORD=postgres"
      

    【讨论】:

    • 我试过这个,但遗憾的是这并没有解决我的问题。
    猜你喜欢
    • 2018-09-22
    • 2020-10-31
    • 2019-10-22
    • 1970-01-01
    • 2015-02-15
    • 2016-04-05
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多