2015-10-20 75 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並重新編譯。