ojdbc14外部jar文件引发未找到异常[重复]
Posted
技术标签:
【中文标题】ojdbc14外部jar文件引发未找到异常[重复]【英文标题】:ojdbc14 external jar file raises not found exception [duplicate] 【发布时间】:2021-07-20 20:30:37 【问题描述】:我正在尝试在我的 Spring Boot 项目中添加外部 jar 文件。
在pom.xml
我有:
<dependencies>
<dependency>
<groupId>ojdbc14</groupId>
<artifactId>ojdbc14</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>C:\Users\myUser\Dropbox\Projects\myProject\ojdbc14.jar</systemPath>
</dependency>
</dependencies>
在 java 文件中的一个类中,我有:
Class.forName("oracle.jdbc.driver.OracleDriver");
运行项目时出现以下错误:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.ucy.MyApi.getdbConnection(myApi.java:23)
【问题讨论】:
你真的还在使用 Java 1.4 吗? @a_horse_with_no_name 不,但不幸的是,我们正在连接的系统是的,我必须与之连接。 JDBC 驱动程序通常是向后兼容的,因此您可以使用较新的驱动程序连接到较旧的数据库。system
作用域类似于provided
,这意味着 jar 将在运行时由某些东西(通常是容器)提供,但可用于系统路径的编译时。所以你使用了错误的范围。
【参考方案1】:
这可能有助于ojdbc14.jar vs. ojdbc6.jar
您确定 POM 中的定义正确吗?
我用这个:
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>18.3.0.0</version>
</dependency>
检查特定版本的 Oracle 和正确的 jar 版本。它应该不需要系统路径。
【讨论】:
【参考方案2】:您需要使用 maven 命令来安装 3rd 方 jar:
mvn install:install-file -Dfile=C:\Users\myUser\Dropbox\Projects\myProject\ojdbc14.jar -DgroupId=ojdbc14 -DartifactId=ojdbc14 -Dversion=1.0 -Dpackaging=jar
https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
之后更改您的 pom 文件,如下所示:
<dependency>
<groupId>ojdbc14</groupId>
<artifactId>ojdbc14</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
【讨论】:
以上是关于ojdbc14外部jar文件引发未找到异常[重复]的主要内容,如果未能解决你的问题,请参考以下文章