运行时错误:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
我是mysql和jdbc的新手,我收到了这个标题中的错误。 我一整天都在搜索,找不到适合我的解决方案。
我试过的:卸载/重新安装mysql,将mysql-connector-java-5.1.25-bin.jar和ojdbc7.jar粘贴到我试图运行的.class文件的相同位置,在不同的目录中重建程序,可能还有其他几件事。
我使用notepad ++进行编码,并使用windows命令提示符进行编译和运行。 它编译得很好,但我尝试运行
C:\ Projects \ bin> java -cp。 ClientBase
输出是:
java.lang.ClassnNotFoundException:com.mysql.jdbc.Driver
在java.net.URLClassloader $ 1.run(URLClassLoader.java:336)
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
在java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:432)
在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
在ClientBase.main(ClientBase.java:21)
再见。
// import packages import java.sql.*; // create class ClientBase public class ClientBase{ // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/CLIENTBASE"; // Database credentials static final String USER = "root"; static final String PASS = ""; // Begin method main public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // register JDBC driver Class.forName("com.mysql.jdbc.Driver"); // Open connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); // Execute a query System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, address, address 2, city, phone, state, zip, fax FROM CLIENTBASE"; ResultSet rs = stmt.executeQuery(sql); // Extract data from result set while(rs.next()){ // Retrieve by column name int id = rs.getInt("id"); String name = rs.getString("name"); String address = rs.getString("address"); String address2 = rs.getString("address2"); String city = rs.getString("city"); String phone = rs.getString("phone"); String state = rs.getString("state"); String zip = rs.getString("zip"); String fax = rs.getString("fax"); // Display values System.out.print("ID: " + id); System.out.print(" Name: " + name); System.out.println("Address:" + address); System.out.println(address2); System.out.print("City:" + city); System.out.print(" State: " + state); System.out.println(" Zip: " + zip); System.out.print("Phone: " + phone); System.out.println(" Fax: " + fax); } // end while // clean up rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ // Handle errors for JDBC se.printStackTrace(); }catch(Exception e){ // Handle errors for Class.forName e.printStackTrace(); }finally{ // finally block used to close resources try{ if(stmt!=null) stmt.close(); }catch(SQLException se){ se.printStackTrace(); } // end finally } // end try System.out.println("Goodbye."); } // End method main } // end class ClientBase
我还应该说,我将关闭此代码的在线教程。 它并不是他们如何拥有它,因为我决定制作一些与他们不同的东西,但它通常是相同的。 我不认为这是一个代码问题,但错误是什么。
任何帮助,将不胜感激! 我要疯了!
您需要将一个连接器库添加到Runtime类路径:
java -cp .;mysql-connector-java-5.1.25-bin.jar ClientBase
我的示例使用Windows类路径分隔符";"
,在其他系统上它可能是不同的( ":"
在Linux / Mac上)。 它还假设, mysql-connector-java-5.1.25-bin.jar
位于同一文件夹中。 如果不是这种情况,则将路径放入库而不是普通名称。
ClientBase
代表Java类文件名
c:\>javac Test.java c:\>java -cp .;F:\CK\JavaTest\JDBCTutorial\mysql-connector-java-5.1.18-bin Test
如果您使用netbeans,请执行以下操作1.打开Netbeans IDE 2.右键单击您的项目。 3.选择属性。 4.在左侧单击“库”。 5.在“编译”选项卡下 – 单击“添加Jar /文件夹”按钮。 6.选择下载的“mysql-connector-java-5.1.25-bin.jar”文件(从dev.mysql.com下载Connector / J)7。单击OK再次运行…其工作。
将mysql.connector-java-xxx-bin.jar
到libraries文件夹中。 无需import任何东西。 祝你有个好的一天。
I was also get same problem :-
我是如何为Linux系统解决的。
1.)从给定链接或其他链接下载文件mysql-connector-java-5.1.18-bin.jar 。
2.)然后将其粘贴到您的类或文件的相同文件夹或目录(在您想要连接的位置)
3.)现在使用linux命令提示符下面的命令。
java -cp .:mysql-connector-java-5.1.18-bin.jar YourFileName
..
多数民众赞成你需要做的…… 🙂
你import了什么? 从文档: http : //dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-connect-drivermanager.html
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; // Notice, do not import com.mysql.jdbc.* // or you will have problems!
评论:
你为什么用notepad ++? 安装IDE(Eclipse / Netbeans / IntelliJ) – 找到这些问题会更加容易(例如,未包含的jar)
如果您正在使用Swing
,则必须添加my-sql-connect的外部Jar
否则,如果您正在使用jsp servlet
您必须添加外部jar并将该Jar复制到WEB_INF / lib项目文件夹中
- 带有已部署的动态Web项目的WebSphere ClassNotFoundException
- java.lang.ClassNotFoundException:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
- 如何设置rmiregistry使用的类路径?
- 问题 – java.lang.ClassNotFoundException:org.springframework.web.servlet.DispatcherServlet
- ClassNotFoundException:com.mysql.jdbc.Driver
- 未在Web服务器中运行时,库中的Java重载方法失败
- org.h2.Driver的java ClassNotFoundException
- Tomcat为其他开放日食项目中的类抛出ClassNotFoundexception
- ClassNotFoundException oracle.jdbc.driver.OracleDriver仅在servlet中使用Eclipse