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文件引发未找到异常[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ojdbc6.jar;打开 zip 文件时出错

如果未找到任何内容,Object.get() 将引发异常 [重复]

关于oracle的JDBC驱动ojdbc14.jar

ojdbc14.jar 与ojdbc6.jar的区别

Oracle版本与驱动类匹配问题

ojdbc14.jar 与 ojdbc6.jar