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的主要内容,如果未能解决你的问题,请参考以下文章