【问题标题】:Even after adding mysql Jconnector to CLASSPATH, getting java.lang.ClassNotFoundException(Not using IDE)即使在将 mysql Jconnector 添加到 CLASSPATH 之后,也会出现 java.lang.ClassNotFoundException(不使用 IDE)
【发布时间】:2015-01-12 06:32:22
【问题描述】:

我正在尝试从 java 连接 mysql,这些是我在 windows 中使用 GUI 设置的 CLASSPATH 变量值(控制面板->系统->高级系统设置->环境变量)。

.;.;.;.;.;C:\PROGRA~2\JMF21~1.1E\lib\sound.jar;C:\PROGRA~2\JMF21~1.1E\lib\jmf.jar;C :\PROGRA~2\JMF21~1.1E\lib;E:\Face_rec\FaceDetect-java\lib\facedetect-openimaj.jar;C:\Program 文件 (x86)\MySQL\Connector J 5.1.27\mysql-connector-java-5.1.27-bin.jar

加粗的是我正在处理的类路径。即使所有不同的路径都用分号分隔,并且 mysql-connector-java-5.1.27-bin.jar 已添加到 CLASSPATH 中,但我在运行代码时遇到了此错误。 p>

java.lang.ClassNotFoundException: com.sql.jdbc.Driver.

这是代码的一部分。而且我已经导入了,

import java.awt.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.JTextField;
import javax.swing.ImageIcon;

ok.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent ae)
            {
                String test=jf1.getText();
                String testa=jf2.getText();
                String n;
                String m;
                try
                {
                    Class.forName("com.mysql.jdbc.Driver");
                    Connection con=DriverManager.getConnection

("jdbc:mysql://localhost/authentication?"+"user=root&password=letmein");
                    PreparedStatement p=con.prepareStatement("Select * from authentication.admin where 

id Like '"+test+"%'");
                    ResultSet rs=p.executeQuery();
                        rs.next();
                        n=rs.getString("Username");
                        m=rs.getString("Password");
                        con.close();
                    if(n.equalsIgnoreCase(test) && m.equalsIgnoreCase(testa))
                    {
                            JOptionPane.showMessageDialog(null,"Your username and password is 

correct");
                    }
                    else
                    {
                            JOptionPane.showMessageDialog(null,"Your username or password is 

incorrect");
                    }

                }
                catch(Exception es)
                {
                    System.out.println(es);
                }

            }
        });

更新:我没有使用任何 IDE(netbeans 的 Eclipse)。我只使用命令提示符。 请帮我解决这个问题。

【问题讨论】:

  • 我看到你的路径中有空格。这可能是问题吗?
  • @Abhi 我尝试双引号引用整个路径。像“C:\Program Files (x86)\MySQL\Connector J 5.1.27\mysql-connector-java-5.1.27-bin.jar”,但没有用。
  • 您不会像您发布的那样收到错误,java.lang.ClassNotFoundException: com.sql.jdbc.Driver 。
  • @Michal 我没听懂你。我已复制错误以防止键入时出错。
  • 你做 Class.forName("com.mysql.jdbc.Driver");因此错误必须是 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

标签: java mysql jar environment-variables classpath


【解决方案1】:

您还应该将其放入您的项目中。 取决于您使用的构建工具,但如果您只是将其复制到 lib 文件夹中,大多数情况下都可以使用。

【讨论】:

  • 您好 Maksym 很抱歉没有提及。我没有使用任何构建工具。只需在命令提示符下执行它。无论如何我可以通过命令提示符执行此操作吗?
  • 我没有得到 lib 部分。复制到哪个lib文件夹?
  • 在你的项目中应该是lib文件夹,你可以把它放在那里。
  • 如果您使用的是 eclipse,请参阅wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-(Java)
【解决方案2】:

您也必须在项目的 Lib 文件夹中添加 jar。

步骤:

  1. 打开命令提示符。
  2. 转到您创建项目的路径。

    例如:如果您在 C:\Workspace\Test(其中 Test 是您的项目名称)中创建了项目

  3. 在命令提示符中,键入 C:> cd C:\Workspace\Test

  4. 现在您的命令提示符看起来像这样 C:\Workspace\Test>
  5. Test后输入dir,会显示目录结构 你的项目。检查该结构中是否有任何 Lib 文件夹。
  6. 如果您有 lib 文件夹,请在命令提示符下键入 dir lib 将向您显示项目中可用的 jar 列表。
  7. 如果没有找到可以在lib中添加mysql-connector-java-5.1.27-bin.jar

如果这有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 2021-07-14
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    相关资源
    最近更新 更多