" java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver"从终端运行时出错

时间:2015-10-20 04:37:42

标签: java eclipse oracle jdbc classpath

我有一个程序,我从Eclipse成功运行。

但是,当我想从终端运行它时,我遇到了一个着名的错误:

  

" java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver"

在这一行:

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

PS:

我在CLASSPATH中有以下内容:

/oracle/jdbc/lib/ojdbc6.jar

还要注意我成功编译它(javac Test2.java)。然后当我运行它(java Test2)时,我收到以下错误:

  

错误:无法找到或加载主类Test2

所以我跑:

java -classpath ~/Desktop/JDBC2/src Test2

它运行,但我得到上面的" ClassNotFoundException"虽然。

2 个答案:

答案 0 :(得分:0)

正如@yngwietiger在评论中提到的那样,在运行.class文件时使用-classpath参数,会覆盖原始的CLASSPATH 和预定义的ojdbc6.jar文件。因此我们需要在运行时提及:

java -classpath ~/Desktop/JDBC2/src:/oracle/jdbc/lib/ojdbc6.jar Test2 

或者,作为更好的解决方案,我们可以将当前路径添加到CLASSPATH(注意末尾的冒号和点):

export CLASSPATH=$CLASSPATH:.

而且,为了运行,我们只需要输入:

Java Test2

答案 1 :(得分:0)

我发现这个问题很棘手:原因与jar文件地址后的分号有关。 起初我将MySample.java的目录更改为另一个目录(你不能这样做),比如C:\ 然后我从源代码中删除了包地址,最后我在cmd中运行了这个命令

java -cp path_to_oracle_driver.jar; MySample

P.S。如果你想从终端运行它,你必须从源代码中删除package PackageAddress并再次编译。