Oracle JDBC连接:java.library.path中没有ocijdbc9

Oracle JDBC连接:java.library.path中没有ocijdbc9,java,oracle,jdbc,Java,Oracle,Jdbc,我在尝试连接到oracle数据库时遇到以下错误, 当我在web上搜索时,建议在类路径上添加所需的jar,我已经这样做了。我甚至尝试创建一个运行配置,在类路径上添加了jar,但仍然得到相同的错误 请帮忙 错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.

我在尝试连接到oracle数据库时遇到以下错误, 当我在web上搜索时,建议在类路径上添加所需的jar,我已经这样做了。我甚至尝试创建一个运行配置,在类路径上添加了jar,但仍然得到相同的错误

请帮忙

错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:262)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at com.example.DAO1.main(DAO1.java:13)

我添加了ojdbc14.jar

您想要的是JDBC瘦驱动程序,它是100%Java,而不是OCI驱动程序。这需要一个DLL,JVM告诉您它不在LD_LIBRARY_路径中

将URL更改为

Connection conn = DriverManager.getConnection(
                "jdbc:oracle:thin:@mydevdb:1521:mysandbox", "uname", "pwd");

我也不喜欢你的司机罐。我建议至少使用ojdbc6.jar。jddbc14.jar是JDK1.4复古版,已经过时了。

您想要的是JDBC瘦驱动程序,它是100%Java,而不是OCI驱动程序。这需要一个DLL,JVM告诉您它不在LD_LIBRARY_路径中

将URL更改为

Connection conn = DriverManager.getConnection(
                "jdbc:oracle:thin:@mydevdb:1521:mysandbox", "uname", "pwd");


我也不喜欢你的司机罐。我建议至少使用ojdbc6.jar。ojdbc14.jar是JDK 1.4复古版-已经过时。

永远不要手动调用
DriverManager.registerDriver()
方法。JDBC规范要求在加载类时注册自己的驱动程序,并通过
class.forName()
加载该类。在
jdbc4
中,只需在类路径上,驱动程序就可以自动加载。

切勿手动调用
DriverManager.registerDriver()
方法。JDBC规范要求在加载类时注册自己的驱动程序,并通过
class.forName()
加载该类。在
jdbc4
中,只要在类路径上就可以自动加载驱动程序。

刚刚注意到,在我将连接字符串更改为“JDBC:oracle:thin”后,错误消失了!虽然不清楚,但我注意到,在我将连接字符串更改为“jdbc:oracle:thin”后,错误消失了!虽然不清楚,但我改为jdbc:oracle:thin并检查了错误,尽管我不知道原因+1,谢谢原因。关于jar版本,我从这个线程中得到了它-。将更新到ojdbc6.jar,我使用的是jdk1.6。我可以接受soonHi@duffymo的答案-当你有机会的时候,你能帮我在我刚刚发布的这个问题上提出一些建议吗-我改为jdbc:oracle:thin并检查了错误,尽管我不知道原因+1,谢谢你的原因。关于jar版本,我从这个线程中得到了它-。将更新到ojdbc6.jar,我使用的是jdk1.6。我可以接受soonHi@duffymo的答案-当你有机会的时候,你能帮我在我刚刚发布的这个问题上提出一些建议吗-docs.oracle.com的例子就是这样的:但是有时候你可能会注册你的驱动程序类twiceI我同意这是没有必要的,但这对于早期的JDBC习惯用法是正确的。前面的例子都是这样做的。做两次并不是一个破坏者——最好是nano优化。ya@duffymo你是对的,现在在JDBC 4中,如果驱动程序在类路径中,则可以自动加载,这是一个很大的进步。很好?在docs.oracle.com的例子中是这样的:但是有时候你可能会注册你的驱动程序类twiceI,我同意这是没有必要的,但是对于早期的JDBC习惯用法来说这是正确的。前面的例子都是这样做的。做两次并不是一个破坏者——最好是nano优化。ya@duffymo你是对的,现在在JDBC 4中,如果驱动程序在类路径中,则可以自动加载,这是一个很大的进步。很好?充其量是小调。