2017-02-22 48 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