2015-10-20 91 views
0

我有一个程序可以成功从Eclipse运行。从终端运行时出现“java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver”错误

然而,当我想从终端运行它,我遇到了著名的错误:在这条线

"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),我收到以下错误:

Error: Could not find or load main class Test2

于是我运行:

java -classpath ~/Desktop/JDBC2/src Test2 

它运行,但我得到了上面的 “ClassNotFoundException的” 虽然。

+0

在类路径中包含驱动程序jar – MadProgrammer

+0

您是否已添加到'-classpath'参数? – MadProgrammer

+0

是的,如果你的意思是运行:java -classpath〜/ Desktop/JDBC2/src Test2 – Alisa

回答

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

驱动程序.jar文件路径添加到环境变量 enter image description here

+2

正如yngwietiger所指出的那样 - *“\t 使用-classpath覆盖你的CLASSPATH变量”* – MadProgrammer

+0

我正在使用Linux,正如我所说的,我在CLASSPATH中使用了它。 – Alisa

+1

当您指定-classpath时,CLASSPATH将被忽略。这很简单。 – yngwietiger

0

我发现这个问题非常棘手:jar文件地址后分号的原因有关。 起初我改变MySample.java的目录到另一个目录(可以不这样做),如C:\ 然后我删除从源代码包地址,在结束我运行在CMD此命令

java -cp path_to_oracle_driver.jar; MySample 

PS如果你想从终端运行它,你必须从源代码中删除package PackageAddress并重新编译。

相关问题