我用的是JDK1.5,ORACLE9I,CLASSPATH里配置如下;.;C:\oracle\ora81\jdbc\lib\classes12.jar.;C:\Program Files\Java\jdk1.5.0_01\lib,也将ORACLE中的CLASSES12.JAR复制到了JDK的LIB中,我的连接代码如下:
String url="jdbc:oracle:thin:ebg12:1521:ebg";
String user="system";
String pass="manager";
Connection conn=null;
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
conn=DriverManager.getConnection(url,user,pass);
Statement stme=conn.createStatement();
}
编译时通过,运行时报错:
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
at dbtest.main(dbtest.java:20)
也就是:DriverManager.registerDriver(new oracle.jdbc.OracleDriver());行出错请教各位是哪里错了.这个问题困扰我很久了.
String url="jdbc:oracle:thin:ebg12:1521:ebg";
String user="system";
String pass="manager";
Connection conn=null;
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
conn=DriverManager.getConnection(url,user,pass);
Statement stme=conn.createStatement();
}
编译时通过,运行时报错:
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
at dbtest.main(dbtest.java:20)
也就是:DriverManager.registerDriver(new oracle.jdbc.OracleDriver());行出错请教各位是哪里错了.这个问题困扰我很久了.
给你一个建议,安装jdk时,不要安装到中文目录或者中间带有空格字符的目录下边。
你可以把jdk1.5.**移到d:\下边。假设jdk1.5.0_01的位置在d:\java\jdk1.5.0_01下。
一个比较保险的配置是:
JAVA_HOME 值为 d:\java\jdk1.5.0_01
PATH 值为 %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin
CLASSPATH值为 .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;C:\oracle\ora81\jdbc\lib\classes12.jar这样配置完以后,你再试试你的程序执行有什么问题?
dbtest.java:20: package oracle.jdbc.driver does not exist
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
到底是哪个环节错了?
实在不行,使用傻瓜式IDE,比如JBuilder或者Eclipse算了。
用的是什么工具开发的?
用Eclipse,在工程下导入驱动classes12.jar//加载驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class JDBCOracle { /**
* @param args
* @throws SQLException
*/ public static void main(String[] args){
// TODO Auto-generated method stub
Connection con = null;
Statement st = null;
ResultSet rs = null;
try{
Class.forNam("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@10.1.0.62:1521:icss","system","manager1");
st = con.createStatement();
rs = st.executeQuery("select * from t_user");
while(rs.next()){
String value = rs.getString("user_name");
int user_id = rs.getInt(1);
String password = rs.getString("password");
System.out.println(user_id+"\t"+value+"\t"+password);
}
}catch(Exception e){
System.out.println();
}
finally{
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}}
我按照你说的做了,还是找不到驱动:Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver我真被这个问题快搞疯掉了,到底是哪里错了?
JAVA连接ORACLE时到底要做哪些配置,ORACLE要启动哪些服务,各位可以说一下吗?
上面的代码我在dos窗口和eclipse下都能运行。你在eclipse下面试下看能行不
看下你的path中使用的jdk是oracle的还是自己装的哪个jdk,装了oracle它会把你path中的jdk覆盖掉,这个时候你使用的是oracle的jdk
好好对照路径
重启TOMCAT
在ECLIPSE下ADD全部JAR文件
有错误!ClassPath修改如下:.;C:\oracle\ora81\jdbc\lib\classes12.jar;C:\Java\jdk1.5.0_01\lib*.直接Cut Java目录到C:\
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
public class test {
public static void main(String[] args) {
Connection connection = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e)
{
System.out.println("data not find");
}
try {
String serverName = "127.0.0.1";
String portNumber = "1521";
String sid = "ss";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
String username = "scott";
String password = "tiger";
connection = DriverManager.getConnection(url, username, password);
System.out.println("ok");
} catch (SQLException e) {
System.out.println("error");
e.printStackTrace();
}
try
{
String sql = "SELECT * FROM dept1 whe";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString(1));
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}