ClassNotFoundException:com.mysql.jdbc.Driver
这个问题已经在这里被问了很多,但我仍然无法解决我的问题:我把mysql-connector-java-5.1.18-bin
放到C:\Program Files\Java\jre6\lib\ext
文件夹中。 我有这个代码:
// Load the database driver Class.forName("com.mysql.jdbc.Driver"); // Get a connection to the database Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mysql", "root", "4958ps"); // Get a statement from the connection Statement stmt = conn.createStatement() ; // Execute the query ResultSet rs = stmt.executeQuery( "SELECT * FROM Cust" ) ; // Loop through the result set while( rs.next() ) System.out.println( rs.getString(1) ) ; // Close the result set, statement and the connection rs.close() ; stmt.close() ; conn.close() ; } catch( SQLException se ) { System.out.println( "SQL Exception:" ) ; // Loop through the SQL Exceptions while( se != null ) { System.out.println( "State : " + se.getSQLState() ) ; System.out.println( "Message: " + se.getMessage() ) ; System.out.println( "Error : " + se.getErrorCode() ) ; se = se.getNextException() ; } } catch( Exception e ) { e.printStackTrace(); }
我得到一个带有以下堆栈跟踪的ClassNotFoundException:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at pack.Test.main(Test.java:14)
我还将CLASSPATH
变量更改为C:\Program Files\Java\jre6\lib\ext\mysql-connector-java-5.1.18-bin
什么想法吗?
您下载的zip应包含名为mysql-connector-java-5.0.8-bin.jar
或类似文件的文件。 版本可能不同。 检查它是否存在并检查它是否直接位于类路径中(不在子目录中等)。
如果没关系,请检查您的类路径变量是否被其他内容覆盖。 如果手动执行程序,请执行以下操作: java -cp "C:\Program Files\Java\jre6\lib\ext\mysql-connector-java-5.0.8-bin.jar:." YourClass
java -cp "C:\Program Files\Java\jre6\lib\ext\mysql-connector-java-5.0.8-bin.jar:." YourClass
如果您使用的是诸如eclipse之类的IDE,请检查您的构建路径设置。 (在eclipse中,您可以右键单击您的项目 – >属性 – > Java构建路径 – >添加外部JAR,然后提供连接器的路径… jar。
我认为问题是你把mysql-connector-java-5.1.18-bin文件放在那里你必须把“mysql-connector-java-5.0.5.jar”文件放在那里。
我在eclipse(IDE)中创建了一个Web应用程序。 因此,如果您在eclipse(IDE)上创建Web应用程序,那么您可以将“mysql-connector-java-5.0.5.jar”放在lib文件夹中。 下面是我放置“mysql-connector-java-5.0.5.jar”文件的路径…
C:\ Users \用户阿布舍克巴克\工作空间\ MyProject的\的WebContent \ WEB-INF \ lib中\ MySQL的连接器的Java-5.0.5.jar
CLASSPATH变量不能只是目录,它必须具有实际的jar名称。
一个bat文件看起来像
@echo off set CLASSPATH=program.jar;mysql-connector-java-5.1.18-bin.jar :start start javaw.exe MainClass
program.jar(将包含MainClass类作为主类),mysql.jar必须驻留在同一目录中。
对于Eclipse,您必须将项目Build Path设置为包含mysql … jar。
我遇到了同样的问题以及我做了什么来解决它:
-
相应地将.jar下载到所使用的服务器:对于mySQL,我下载了mysql-connector-java-5.1.18-bin.jar
-
在SYSTEM VARIABLES中添加了CLASSPATH,其中使用了.jar的全名。 如果你已经有了CLASSPATH var,那么就加入它,就像在PATH“; Jar / jar文件名的路径”里面那样:CLASSPATH = d:\ requisites \ mySQL_connector \ mysql-connector-java-5.1.18-bin.jar
-
在Eclipse项目中:右键单击project-> Build Path-.Configure构建路径。 添加外部JAR并添加jar文件。 当您成功执行此步骤时,它将显示在“参考库”中的项目中
-
一个重要的步骤(如果您使用我正在使用的Android开发工具框架)是在您的应用程序的libs文件夹中添加该JAR文件。 我通过将jar从我的路径(d:\ requisites \ mySQL_connector)复制粘贴到我项目的libs文件夹中来完成此操作。
重新启动项目,它在第二次运行时工作。
尝试这个
如果您创建动态Java项目(在Eclipse中)
-
检查相应项目的构建路径
-
-
步骤1.右键单击Project并选择Properties
-
步骤2.在右侧,您将获得部署程序集
-
步骤3.单击“添加”,然后从“文件系统”中选择“存档”
-
步骤4.再次单击添加并选择相应的数据库jar文件。
-
- 带有已部署的动态Web项目的WebSphere ClassNotFoundException
- 如何捕获java.lang.NoClassDefFoundError?
- ProGuard打破了JavaFX应用程序
- java.lang.ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDriver:我加载了正确的驱动程序吗?
- 运行时错误:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
- 为什么我得到Class not found例外
- Java无法找到主类
- 来自远程目录的Java Class.forName()
- 未在Web服务器中运行时,库中的Java重载方法失败