运行jar包时无法确定嵌入式数据库驱动程序类别为NONE。

5
正如问题标题中提到的,我面临 "Cannot determine embedded database driver class for database type NONE" 问题。我构建的应用程序是基于spring boot的,在intellij中运行代码时工作正常。
我查看了多个关于相同异常的问题,并且他们建议我在我的application.properties文件中添加spring.datasource属性。 我已经添加了这些属性,但仍然面临相同的问题。当我使用intellij的artifacts创建jar文件并通过以下命令运行它时,就会出现此问题。"java -jar myJar.jar"
我的application.properties文件:
# ===============================
# = DATA SOURCE
# ===============================
spring.datasource.url = jdbc:mysql://localhost:3306/db_wssmith?useSSL=false
spring.datasource.username = 
spring.datasource.password = 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

运行jar时的错误日志

ERROR org.springframework.boot.SpringApplication - 应用程序启动失败 org.springframework.beans.factory.UnsatisfiedDependencyException: 通过构造函数参数 0 表达的不满足依赖项,创建 bean 的名称为 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration'; 嵌套异常是 org.springframework.beans.factory.BeanCreationException: 在 'class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]' 中定义的 bean 名称为 'dataSource' 时,通过工厂方法生成 bean 失败; 嵌套异常是 org.springframework.beans.BeanInstantiationException: 实例化 [org.apache.tomcat.jdbc.pool.DataSource] 失败:工厂方法 'dataSource' 抛出异常; 嵌套异常是 org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: 无法确定嵌入式数据库驱动程序的数据库类型为 NONE。如果您想使用嵌入式数据库,请把支持的嵌入式数据库放在类路径上。如果您有要从特定配置文件加载的数据库设置,则可能需要激活它(当前没有激活的配置文件)。


1
在IntelliJ项目中,它位于src/main/resources文件夹中,在使用Winrar打开jar文件时,它不在任何文件夹中,而是在文件夹外部。 - Syed Anas
使用mvn spring boot命令进行编程工作。 - Syed Anas
我已经设置了用户名和密码,只是出于安全考虑没有在这里显示。 - Syed Anas
1
如果您使用Maven命令构建JAR包而不是使用IntelliJ,那么java -jar yourjar.jar是否有效?只是为了确保这与IntelliJ Maven配置有关。 - Akli REGUIG
那个可行了,不应该使用构件来构建jar,谢谢。 - Syed Anas
显示剩余4条评论
1个回答

3

您应该从Maven创建jar包,方法是:在顶部单击View,然后选择Tool Windows/Maven Projects,从中在maven的LifeCycle选项中双击安装。使用由该命令创建的jar包,而不是使用IntelliJ。这样应该可以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接