gpt4 book ai didi

java - 无法加载 jdbc 驱动程序 (ClassNotFoundException)

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:49 25 4
gpt4 key购买 nike

我正在尝试加载 JDBC 驱动程序以对我的 AS400 进行一些 SQL 调用。我试过在安装了 JDBC 的计算机上运行连接,并且 URL 和 SQL 调用工作正常。

我需要开发一个没有安装驱动程序的应用程序(目前适用于 Android,但我们正在寻求扩展到桌面应用程序)。我正在实际的 Android 设备上测试代码,而不是模拟器,因此它具有完整的互联网权限。

jt400 的驱动程序位于 com.ibm.as400.access.AS400JDBCDriver 中,为 noted by IBM .

这是我的代码:

    try {

Class.forName("com.ibm.as400.access.AS400JDBCDriver").newInstance();
Connection conn = DriverManager.getConnection(
url + schema + ";naming=sql;errors=full",
uname,
psswrd);

// do SQL query stuff

rs.close();
stmt.close();
conn.close();

}
catch (ClassNotFoundException e)
{
this.basicOutput.setText("Class not found: " + e.getMessage());
System.out.println(e.getStackTrace());
}
//catch (SQLException e)
catch (Exception e) //need generic to catch all errors thrown
{

this.basicOutput.setText(e.getMessage());
System.out.println(e.getStackTrace());

}

当我运行它时,我收到“找不到类:com.ibm.as400.access.AS400JDBCDriver”。

我做了一些研究,它表明 Class.forName 不是一个好方法。所以我也尝试了这个:

        DriverManager.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());

但这也会产生同样的错误。

类(class)就在那里。编译后的代码不会抛出任何语法错误,但由于某种原因,运行时无法找到它。

我错过了什么?

最佳答案

驱动程序需要作为 jar 包含在您的项目中。如果你已经有了它,那么将它添加到你的项目的文件夹/libs 中。

您将驱动程序类指定为字符串文字,因此在编译期间它通过了并且您认为一切都很好。但是,在运行时它需要找到它,并且因为您没有包含它不能找到的 jar。

关于java - 无法加载 jdbc 驱动程序 (ClassNotFoundException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15419415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com