java - Spring Boot java.lang.IllegalArgumentException:URL 必须以“jdbc”开头
问题描述
尝试启动我的项目时出现错误:
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,但我认为这不应该导致这样的问题。
你知道配置被覆盖的地方吗?
解决方案
当您仅引用该值时,引号字符将成为该值的一部分,这意味着 URL 现在以 a 开头"jdbc
,因此您会收到错误消息“必须以jdbc
”开头。
你有两个选择:
不要引用:
-DJDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/project -DJDBC_DATABASE_USERNAME=postgres -DJDBC_DATABASE_PASSWORD=postgres
引用整个论点:
"-DJDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/project" "-DJDBC_DATABASE_USERNAME=postgres" "-DJDBC_DATABASE_PASSWORD=postgres"
推荐阅读
- reactjs - 什么是 React Native Web?
- javascript - 如何在客户端排除导入
- python - 分配 django 之前引用的局部变量“用户名”
- apache-kafka - 卡夫卡连接 - 文件源
- typescript - 在堆叠类Angular 9 TypeScript中对列名进行排序
- django - 具有不同用户名字段类型的两种不同类型的用户
- batch-file - 使用批处理文件对 exe 进行基准测试
- linux - 如何在 linux 中从后台取消设置环境变量?
- typescript - 打字稿应该每个输入参数都是一个带有接口的对象,即使很简单?
- php - 在php中形成复选框组