Jdbc 无法在简单java类中加载OracleDriver类

Jdbc 无法在简单java类中加载OracleDriver类,jdbc,java,Jdbc,Java,//DbConnector.java import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; public class DbConnector { public static void main(String[] argv) { System.out.println("-------- Oracle JDBC Connection Testing

//DbConnector.java

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class DbConnector {

    public static void main(String[] argv) {

        System.out.println("-------- Oracle JDBC Connection Testing ------");

        try {

            Class.forName("oracle.jdbc.driver.OracleDriver");

        } catch (ClassNotFoundException e) {

            System.out.println("Where is your Oracle JDBC Driver?");
            e.printStackTrace();
            return;

        }

        System.out.println("Oracle JDBC Driver Registered!");

        Connection connection = null;

        try {

            connection = DriverManager.getConnection(
                    "jdbc:oracle:thin:@172.17.119.108:1526:GESSDEV", "username",
                    "password");

        } catch (SQLException e) {

            System.out.println("Connection Failed! Check output console");
            e.printStackTrace();
            return;

        }

        if (connection != null) {
            System.out.println("You made it, take control your database now!");
        } else {
            System.out.println("Failed to make connection!");
        }
    }

}
我有一个名为odbc14.jar的jdbc jar

javac-classpath odbc14.jar;DbConnector.java

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class DbConnector {

    public static void main(String[] argv) {

        System.out.println("-------- Oracle JDBC Connection Testing ------");

        try {

            Class.forName("oracle.jdbc.driver.OracleDriver");

        } catch (ClassNotFoundException e) {

            System.out.println("Where is your Oracle JDBC Driver?");
            e.printStackTrace();
            return;

        }

        System.out.println("Oracle JDBC Driver Registered!");

        Connection connection = null;

        try {

            connection = DriverManager.getConnection(
                    "jdbc:oracle:thin:@172.17.119.108:1526:GESSDEV", "username",
                    "password");

        } catch (SQLException e) {

            System.out.println("Connection Failed! Check output console");
            e.printStackTrace();
            return;

        }

        if (connection != null) {
            System.out.println("You made it, take control your database now!");
        } else {
            System.out.println("Failed to make connection!");
        }
    }

}
编译成功

java-classpath odbc14.jar;数据库连接器

输出:: ----oraclejdbc连接测试--- 您的Oracle JDBC驱动程序在哪里

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at DbConnector.main(DbConnector.java:13)
请帮我解决这个问题

我已经解决了上述问题。现在我有了新的例外

----oraclejdbc连接测试--- Oracle JDBC驱动程序已注册! 连接失败!检查输出控制台

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
与ojdbc14.jar一起使用的JDBC驱动程序是oracle.JDBC.OracleDriver

请参阅:

将ojdbc14.jar放入\jre\lib\ext和ADD-in类路径变量中,这样您就不必在编译或运行时指定类路径 如果您使用的是java6,那么oracle.jdbc.driver.OracleDriver是可以的,但不推荐使用。所以最好使用oracle.jdbc.OracleDriver,您应该

 try {

            Class.forName("oracle.jdbc.OracleDriver");

        }

如果尚未完成,请将odbc14.jar放入类路径中

只需将其放入类路径appsclassloader中即可。我不确定,为什么我们需要放入jre/lib/ext

只需将odbc14.jar放入所需的jre路径,如C:\Program Files\Java\jdk1.7.0\u 65\jre\lib\ext


这应该可以解决您的问题。

如果您的jar是odbc14.jar而不是ojdbc14.jar,那么请提取您的odbc14.jar并找到OracleDriverDon类,您是说ojdbc14.jar吗?执行jar tvf jarfile并检查它是否包含您期望的OracleDriver是的。这是ojdbc14.jar。里面有一个类OracleDriver。谢谢Reimeus。它正在工作。名称c:\bea\jdk150_06\bin>java-classpath ojdbc14.jar中有一些错误;DbConnector----Oracle JDBC连接测试---Oracle JDBC驱动程序已注册!连接失败!检查输出控制台java.sql.SQLException:Io异常:网络适配器无法在oracle.jdbc.driver.DatabaseError.throwsqleexceptiondatabaseerror.java:112在oracle.jdbc.driver.DatabaseError.throwsqleexceptiondatabaseerror.java:146在oracle.jdbc.driver.DatabaseError.throwSqlExceptionDatabaseError.java:255这是我现在遇到的异常终于解决了。指定的connectionURL有问题。