java.lang.ClassNotFoundException:net.ucanaccess.jdbc.ucanaccessDriver

Posted

技术标签:

【中文标题】java.lang.ClassNotFoundException:net.ucanaccess.jdbc.ucanaccessDriver【英文标题】: 【发布时间】:2015-12-11 07:50:47 【问题描述】:

我是 java 初学者,使用控制台编译和运行我的程序。我正在尝试使用 ucanaccess 驱动程序从 MS Access .accdb 文件中读取数据。因为我已将 5 个 ucanaccess 文件添加到 C:\Program Files\Java\jdk1.8.0_60\jre\lib\ext,但仍然出现异常 。 这是我的代码。

import java.sql.*;
public class jdbcTest 

    public static void main(String[] args)
    
        try
        
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            String url = "jdbc:ucanaccess://C:javawork/PersonInfoDB/PersonInfo.accdb";
            Connection conctn = DriverManager.getConnection(url);
            Statement statmnt = conctn.createStatement();
            String sql = "SELECT * FROM person";
            ResultSet rsltSet = statmnt.executeQuery(sql);
            while(rsltSet.next())
            
                String name = rsltSet.getString("name-");
                String address = rsltSet.getString("address");
                String phoneNum = rsltSet.getString("phoneNumber");

                System.out.println(name + " " + address + " " + phoneNum);
            
            conctn.close();
        
        catch(Exception sqlExcptn)
        
            System.out.println(sqlExcptn);
        
    

【问题讨论】:

错了,你不应该将 5 个 ucanaccess jar 文件添加到 C:\Program Files\Java\jdk1.8.0_60\jre\lib\ext 而是添加到类路径中。更多配置信息见这里:***.com/questions/21955256/… UCanAccess Initializer Error (compile/run without IDE)的可能重复 【参考方案1】:

请将 JDBC 驱动程序 jar 添加到 lib 文件夹。 下载地址download jar

【讨论】:

亲爱的@dullpointer,请指出新的3.0.3发行版(不是旧的3.0.2) ucanaccess 3.0.3 分发文件不包含 jdbc jar。我也见过***.com/questions/21955256/…,它只描述了使用IDE而不是控制台的解决方案。 ucanaccess 发行版中的console.bat 可能会为您提供有关如何设置类路径的建议。您绝对不需要与 Gord 帖子中提到的五个不同的 jar,所有需要的 jar 都在发行版中(jdbc 是 java 标准,而不是单独的 jar)!【参考方案2】:

我尝试了 Gord 在他的帖子Manipulating an Access database from Java without ODBC 中提到的方法,并使用 eclipse 而不是命令行编译和运行。为了学习 Eclipse 基础知识,我观看了视频教程 https://www.youtube.com/watch?v=mMu-JlBrYXo。 最后,我能够从我的 java 代码中读取我的 MS Access 数据库文件。

【讨论】:

这没有回答关于如何解决问题的问题。

以上是关于java.lang.ClassNotFoundException:net.ucanaccess.jdbc.ucanaccessDriver的主要内容,如果未能解决你的问题,请参考以下文章