merely thus. 2022-07-19 10:57 采纳率: 100%
浏览 47
已结题

导入JAR后,还是抛出ClassNotFoundException:

问题遇到的现象和发生背景

现象:运行后抛出了java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver。
背景:我用IDEA 创建了一个JAVA项目,专用于连接MYSQL的java程序,然后在使用class.forname("xx");的时候出现异常。代码是没有问题的,因为我把代码放到以前的,同样使用过 连接数据库的 项目里,是没有任何问题的,那个项目的种种配置和这么项目一样。

问题相关代码,请勿粘贴截图

import java.sql.*;
import java.util.Objects;

public class JDBC {
private static Connection con;

public static void main(String[] args){
    String s="bookdb";
    try{
    connect_db(s);
    }catch (Throwable e){
        e.printStackTrace();
    }
}

public static void connect_db(String db_name) throws Throwable {
    Class.forName("com.mysql.cj.jdbc.Driver");
    //连接数据库
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+db_name+"?serverTimezone=UTC", "root", "123456");
    //验证是否连接到数据库
    if (con != null) {
        System.out.println("连接成功!");
    } else {
        System.out.println("连接失败!");
    }
    Statement s = con.createStatement();

    System.out.println("获取 Statement对象: " + s);
}

public void close_db() throws SQLException {
    con.close();
    System.out.println("连接被关闭!");
}

public boolean executing_sql(String sql) throws SQLException {
    //executer
    //PreparedStatement ps =con.prepareStatement(sql);
    Statement stmt;
    stmt = Objects.requireNonNull(con).createStatement();
    //executing
    try {
        ResultSet rs = stmt.executeQuery(sql);
        return true;
    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
        return false;
    }

    //ResultSet rs = stmt.executeQuery(Sql);

}

}

运行结果及报错内容

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at JDBC.connect_db(JDBC.java:18)
at JDBC.main(JDBC.java:11)

我的解答思路和尝试过的方法

尝试过:1.按步骤重新导入mysql-connection-java-8.0.16.jar,

img

2.为.jar建立依赖(在项目结构里)

img

3.

img

我想要达到的结果

通过配置后,不会有异常

  • 写回答

2条回答 默认 最新

  • 「已注销」 2022-07-19 11:04
    关注

    你导入之后,然后在项目里面还要复制进去 录制要写清楚,路径要写清楚

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月5日
  • 已采纳回答 8月28日
  • 创建了问题 7月19日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么