I want to connect Oracle 10g Express Edition and Java, the steps that I have followed are:
Configure my classpath with the following files:
C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar
C:\Program Files\Java\jdk1.7.0_01\bin
C:\oraclexe\app\oracle\product\10.2.0\server\BIN
Then I have tried the following program to connect it with OCI driver:
import java.sql.*;
public class OracleOCIConnection
{
public static void main(String args[])
{
try
{
// load oracle driver
Class.forName("oracle.jdbc.driver.OracleDriver");
// connect using Native-API (OCI) driver
Connection con = DriverManager.getConnection("jdbc:oracle:oci8:@","hr","hr" );
System.out.println("Connected Successfully To Oracle using OCI driver");
con.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
and also this using the Thin driver:
import java.sql.*;
public class OracleThinConnection
{
public static void main(String args[])
{
try
{
// load oracle driver
Class.forName("oracle.jdbc.driver.OracleDriver");
// connect using Thin driver
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");
System.out.println("Connected Successfully To Oracle");
con.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
In both cases the program compiles, but the line that throws an error is:
Class.forName("oracle.jdbc.driver.OracleDriver");
Any help?
Thanks
Best Answer
First, remove
C:\Program Files\Java\jdk1.7.0_01\bin
from your classpath. It has nothing to do with it.Second, the problem is with your runtime classpath. Remember, compile-time classpath and runtime classpath are two different things. Are you using an IDE (such as Eclipse) to run this? if so, check to see which classpath entries take effect on runtime. In Eclipse, you can get this information by looking at the Launch Configuration that was created to run your application (see the "Classpath" tab).
If you set the classpath through the command-line, then it's possible that the blank inside
Program Files
is the problem. Try surrounding the entire classpath argument with quotes.