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

时间:2013-03-14 20:22:05

标签: java android jdbc ibm-midrange

我正在尝试加载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());

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

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

我错过了什么?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

查看我对此question

的回答

JTopen Lite库中的类设计用于Android。