我一直在相应地关注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连接器复制并粘贴到同一文件夹中,但仍然会遇到异常。

我只是不明白发生了什么,有人可以帮我吗?

非常感谢。



连接器的文件路径如下:

C:\Program Files\MySQL\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14-bin.jar


希望这可以帮助。



为了进行测试,我将FirstExample类放在以下路径下:

C:\java

最佳答案

这使我感到困惑,因为对于初学者来说,我通过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(...)我放置了FirstExample类在C:\ java下


这应该是要使用的命令行:

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

07-24 15:41