gpt4 book ai didi

java - IntelliJ 中的 ClassNotFoundException 依赖关系

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:12 24 4
gpt4 key购买 nike

我收到以下错误:ClassNotFoundException

java.lang.ClassNotFoundException: com.oracle.ojbdc6-11.2.0.1.0
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at uk.ac.ebi.mydas.examples.Conn.main(Conn.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

在我的 intelliJ IDE 上,我非常确定我已经在 Maven 上正确设置了依赖项:因为在我的外部库文件夹中,列出了一个“Maven: com.oracle:ojdbc6:11.2.0.1.0”包。

我假设我的代码存在问题,无法正确处理该类。

try {
Class.forName("com.oracle.ojbdc6");
}

我意识到 jdbc 驱动程序不在 Maven 存储库中,因此我必须直接从 oracle 网站下载它(正确的版本号)并将其加载到我的库中。然后我成功添加了 pom.xml 依赖项。

Maven: ojdbc dependency installed

最后,这是我的 POM.xml:

    <dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>

谢谢!

编辑:尽管解决了 OracleDriver 类问题,问题仍然存在。 enter image description here

编辑2:以下是我在 InnteliJ 上的模块/依赖项设置 enter image description here

最佳答案

加载 jdbc 驱动程序的旧 (jdbc3) 方法是使用 Class.forName(String) 加载它们。每个驱动程序可能都有一个静态 block ,使它们能够向 DriverManager 注册自己。

传递给Class.forName(String)的字符串是驱动程序的完全限定类名称。因此,com.oracle.ojbdc6com.oracle.ojbdc6-11.2.0.1.0 没有意义,除非它们是类路径上的实际类。

而不是com.oracle.ojbdc6 in

try {
Class.forName("com.oracle.ojbdc6");
}

使用oracle.jdbc.driver.OracleDriveroracle.jdbc.OracleDriver,它们都是驱动程序类。这取决于您使用的 jdbc 驱动程序版本。

这是相关的 answer .

关于java - IntelliJ 中的 ClassNotFoundException 依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17841311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com