我一直在相应地关注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