我一直在关注this tutorial。
在命令提示符中运行FirstExample类是因为某些原因它开始变得惊慌失措。尝试运行以下命令后:
java FirstExample
我得到以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: FirstExample
据我所知,由于类路径(由于某种原因)它找不到FirstExample类所以我执行了以下命令:
java -cp . FirstExample
现在它返回一个新的异常:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
现在找不到JDBC驱动程序了。这让我感到困惑,因为对于初学者,我通过Eclipse运行完全相同的编码并且它按预期工作,其次,我尽可能确保执行Eclipse正在执行的相同类文件,并且命令提示符仍然返回异常。我还把FirstExample文件放在一个单独的文件夹中,只是为了将MySQL Connector复制并粘贴到同一个文件夹中,我仍然有例外。
我只是不明白发生了什么事,有人可以帮助我吗?
非常感谢。
连接器的文件路径如下:
C:\Program Files\MySQL\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14-bin.jar
希望这有帮助。
出于测试目的,我已将FirstExample类放在以下路径中:
C:\java
答案 0 :(得分:1)
这让我感到困惑,因为对于初学者来说,我通过Eclipse运行完全相同的编码并且按预期工作
这是因为在Eclipse中您将库添加到构建路径,它将在运行项目时自动使用类路径中指定的所有库。这可以在这里注明:
为了使用命令行工具中的第三方库执行项目,您应该在类路径中手动指定库:
java -cp <path/to/mysql_jar/goes/here>:. FirstExample
通过你的评论:
MySQL文件的路径是:C:\ Program Files \ MySQL \ mysql-connector-java-3.1.14 \ mysql-connector-java-3.1.14-bin.jar(...)我放置了C:\ java
下的FirstExample类
这应该是使用的命令行:
java -cp "C:\Program Files\MySQL\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14-bin.jar; ." FirstExample
请注意,最好将所有第三方库存储在项目中的单个文件夹中,通常称为lib,并在此处添加引用。假设您当前的文件夹有一个lib文件夹,并且所有第三方库都被复制到那里,命令行将是:
java -cp "lib\*; ." FirstExample
答案 1 :(得分:0)
您还需要在类路径中使用com.mysql.jdbc.Driver类(以及所有导入的类)。
您应该下载jar(http://dev.mysql.com/downloads/connector/j/5.0.html)并将其添加到类路径中。
答案 2 :(得分:0)
使用下一个示例将jar添加到类路径中:
java -cp "jdbc.jar;lib/*" my.package.FirstExample
答案 3 :(得分:0)
如果您在Class.forName()中编写的类名存在问题,或者该包未设置为classpath变量,则ClassNotFound异常会上升。确保已将jar文件添加到类路径(C:............ \ jarfilename.jar;)。 这适用于任何JDBC驱动程序和jar文件。添加到类路径的.jar文件对于IDE是不可见的,在这种情况下,您需要将jar文件添加到buildpath(在eclipse中),或者您也可以将jar文件复制到Java安装中可用的ext文件夹文件夹中。
另请注意,数据库软件的jar文件可能会因您使用的数据库软件版本而异,例如,如果您使用的是Oracle 11g,则需要ojdbc6.jar文件,在其他版本的Oracle中,数字更改像ojdbc14.jar等。