我在尝试运行代码时遇到异常java.lang.ClassNotFoundException
我的代码
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/simple",
"root","root");
Statement stmt=con.createStatement();
String query="SELECT * FROM CUST";
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
System.out.print(rs.getString("CUST_NAME") +" ");
System.out.print(rs.getString(2) +" ");
System.out.print(rs.getString(3) +" ");
}
rs.close();
stmt.close();
con.close();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
我收到错误
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at Simple.MyProg.main(MyProg.java:15)
我做错了什么?
答案 0 :(得分:24)
问题不在代码中,但您没有将驱动程序添加到您的项目中!
您必须将*.jar
驱动程序添加到项目中...
尝试将其放入lib目录,然后重新启动tomcat ...
问题是Class.forName("com.mysql.jdbc.Driver");
它试图加载驱动程序,但它没有得到它,这就是你得到的原因:
抛出java.lang.ClassNotFoundException。
答案 1 :(得分:14)
将* .jar复制到我的WEB-INF / lib文件夹中 - >为我工作。当包含在构建路径上时,每次都有这个errormsg。
答案 2 :(得分:4)
您可以从下面的路径下载最新的mysql驱动程序jar,并复制到您的类路径,或者如果您使用的是Web服务器,则复制到tomcat / lib或war / web-inf / lib文件夹。
答案 3 :(得分:4)
问题与MySql驱动程序
有关Class.forName("com.mysql.jdbc.Driver");
将MySQL jdbc驱动程序jar文件添加到类路径中。
我在JDK上也有这个错误。我正确地构建了ClassPath然后我将“mysql-connector-java-5.1.25-bin”放在dir“C:\ Program Files \ Java \ jre7 \ lib \ ext”这个目录中我有我的JDK。然后编译并再次运行,然后它正常工作。
答案 4 :(得分:2)
在类路径中包含jar(jdbc驱动程序)的路径。
答案 5 :(得分:1)
如果在运行它时出现此错误,那么可能是因为您没有将mysql-connector JAR文件包含到Web服务器的lib文件夹中。
现在将mysql-connector-java-5.1.25-bin.jar添加到类路径以及web服务器的lib目录中非常重要。 Tomcat lib路径以Tomcat 6.0 \ lib
为例答案 6 :(得分:1)
如果是独立程序,请下载mysql连接器jar并将其添加到类路径中。
如果是maven项目,请添加以下依赖项并运行您的程序。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
答案 7 :(得分:1)
请注意,mySQL v8 jar中的Driver类的名称(在编写mysql-connector-java-8.0.12.jar时)已更改为com.mysql.cj.jdbc.Driver
您可以通过进入jdbc jar并查看META-INF/services/java.sql.Driver
文件来自己验证这一点。
答案 8 :(得分:0)
如果您正在使用eclipse ide,请下载mysql jdbc连接器jar并将该jar指向构建路径。项目Java构建路径 - &gt;图书馆 - &gt;添加外部罐子。 连接器可以从http://dev.mysql.com/downloads/connector/j/
获得答案 9 :(得分:0)
我有
runtime('mysql:mysql-connector-java')
已更改为
compile('mysql:mysql-connector-java')
解决了我的问题