2017-02-22 67 views
-2

enter image description hereJDBC的ClassNotFoundException甚至有ojdbc6.jar

當我運行代碼,我得到ClassNotFoundException.I認爲這是因爲ojdbc6.jar file.I的下載甲骨文文件和複製文件到我的子目錄後我在命令行上運行代碼。但是,我仍然收到錯誤。任何人都可以幫助我理解我做錯了什麼? enter image description here

+0

你編譯類包括罐子? – emotionlessbananas

+0

將'ojdbc6.jar'添加到您的'CLASSPATH'並重試。 –

+0

什麼是您的java版本 –

回答

3

您遇到此問題是因爲您嘗試運行的類文件取決於名爲ojdbc6.jar的jar文件。首先,你需要編譯jar文件和類文件。

1)首先把你的jar文件放在你有java代碼的同一個目錄下。

2)然後編譯兩種,罐子和java文件:

javac -cp ".:/path_of_jar_file_found_using_pwd/ojdbc6.jar" MyJavaFile.java 

3)現在運行既作爲:

java -cp ojbdc6.jar:. MyJavaFile 

這應該在Mac/Linux或其他基於UNIX system.For工作windows,用;代替:

+0

是的,它的作品!謝謝! –

0

正如我在評論前面提到的,你可以考慮添加ojdbc6.jarCLASSPATH變量或者你可能你%JAVA_HOME%\jre\lib\ext文件夾下添加這個罐子,以便extension類加載器將能夠加載必要的類文件。

SET CLASSPATH = %CLASSPATH%;C:/JARS/ojdbc6.jar; 

可以輕鬆地檢查所需的類是否是使用CTRL + SHIFT + T,因爲它確定從添加的JAR類以及應用程序的一部分。

希望這會有所幫助!

1

從哪裏運行程序? 從截圖中,我可以看到你正在從終端運行它

使用以下命令從終端提供必需的jar包,它們包含在classpath中用於此特定運行。

java -cp "Test.jar;lib/*" my.package.MainClass 

如果你想必要的罐子,你可以通過下面的命令在Windows中設置CLASSPATH變量,並添加必要的jar添加到現有的CLASSPATH變量

SET CLASSPATH = %CLASSPATH%;Test.jar;C:/username/Test1.jar 

然後,你可以運行java程序正常

java SimpleInsert 

如果你使用像Eclipse的IDE,NetBeams,你必須設置您的構建路徑和外部罐子在您的構建路徑。

請參閱這篇文章以獲取更多信息 Setting multiple jars in java classpath

+0

我在mac上運行它,它是unix。那麼,我該如何設置類路徑呢?我認爲這個mac命令應該類似於Linux。雖然我已經接受了其他人的回答,但如果你能回答這個問題,我會提高你的答案。並且提前謝謝你。 –

+0

還有什麼是java -cp「lib/*」?通過測試,jar,你的意思是我的ojdbc6.jar文件?而my.package.MainClass,你的意思是.java文件嗎? –

+0

我不確定Mac,但在unix中,您可以在運行程序之前使用這個'export CLASSPATH = $ CLASSPATH:/home/user/ojdbc6.jar:/ lib/*'。並且.. java -cp「lib/*」將添加所有存在於/ lib文件夾中的jar文件。如果您使用更多的罐子,這很有用。您可以將它們放在lib文件夾(或您選擇的任何文件夾)中,並使用上述通配符將「lib/*」添加到該文件夾​​中的所有jar – ShankarDaruga