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

spi*_*man 1 java oracle jdbc

我在尝试连接到oracle数据库时收到以下错误,当我在网上搜索时,建议是在类路径上添加所需的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)
Run Code Online (Sandbox Code Playgroud)

码:

package com.example;

import java.sql.*;
import java.io.*;

class DAO1 {
    public static void main(String args[]) throws SQLException, IOException {
        // Load the driver
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

        // Connect to the database
        // You can put a database name after the @ sign in the connection URL.
        Connection conn = DriverManager.getConnection(
                "jdbc:oracle:oci8:@mydevdb:1521:mysandbox", "uname", "pwd");

        System.out.println(conn);

        // Close the connection
        conn.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

我添加了ojdbc14.jar

duf*_*ymo 5

您需要JDBC瘦驱动程序,它是100%Java,而不是OCI驱动程序.这需要一个DLL,JVM告诉你的不在LD_LIBRARY_PATH中.

将URL更改为

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

我也不喜欢你有的驱动程序JAR.我建议至少得到ojdbc6.jar.ojdbc14.jar是JDK 1.4复古 - 过时了.