Chaitanya Gudala
Chaitanya Gudala

Reputation: 305

Not able to load OracleDriver class in simple java class

// 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!");
        }
    }

}

I have a jdbc jar with name odbc14.jar

javac -classpath odbc14.jar; DbConnector.java

compilation successfull

java -classpath odbc14.jar; DbConnector

OUTPUT :: -------- Oracle JDBC Connection Testing ------ Where is your Oracle JDBC Driver?

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)

Please help me out to resolve this

I have sorted out the above problem. Now I'm gettin new exception

-------- Oracle JDBC Connection Testing ------ Oracle JDBC Driver Registered! Connection Failed! Check output console

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)

Upvotes: 0

Views: 32644

Answers (5)

AKs
AKs

Reputation: 1745

Just put the odbc14.jar this JAR in required JRE path like "C:\Program Files\Java\jdk1.7.0_65\jre\lib\ext".

This should solve your issue.

Upvotes: 1

Jitendra Kumar
Jitendra Kumar

Reputation: 181

Only you need to put into appsclassloader that is your classpath. I am not sure, why we need to put into jre/lib/ext

Upvotes: 0

Reimeus
Reimeus

Reputation: 159864

The JDBC driver for use with ojdbc14.jar is oracle.jdbc.OracleDriver.

See: Loading JDBC Driver Class - ojdbc14.jar

Upvotes: 6

TheWhiteRabbit
TheWhiteRabbit

Reputation: 15768

you should

 try {

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

        }

and place the odbc14.jar in class path (if already not done)

Upvotes: 0

asifsid88
asifsid88

Reputation: 4711

Put your ojdbc14.jar in <jdk_home>\jre\lib\ext and ADD in CLASSPATH variable then you do not have to specify the classpath while compiling or running
If you are using java6 then oracle.jdbc.driver.OracleDriver is okay but it is deprecated. So it's better to use oracle.jdbc.OracleDriver

Upvotes: 1

Related Questions