我有一个程序,我从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"虽然。
答案 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
并再次编译。