从JAR运行时“找不到合适的驱动程序”

时间:2016-10-01 14:56:51

标签: java ms-access netbeans jar ucanaccess

我开发了一款小游戏,其中用户输入的文本需要在MS Access数据库中发布。

这一切在NetBeans中都运行正常,但每当我从JAR文件访问它时(最终我需要将其发送到我的客户端),它不会向数据库发布任何内容。实际上它返回以下错误:

java.sql.SQLException: No suitable driver found for jdbc:ucanaccess://C:\Users\Paul\Desktop\Spelli\RispostiDB.mdb

这是相关代码:

public void postAnsDB()
    {
       String tableName = "Form"+studentGroup +"_"+studentSurname+"_"+studentName+"";

       answerModifier();

       try{

                String strurl="jdbc:ucanaccess://C:\\Users\\Paul\\Desktop\\Spelli\\RispostiDB.mdb";
                Connection conn=DriverManager.getConnection(strurl, "", "");
                Statement stmt=conn.createStatement();

                //Post Student Details to DB 

                String post = "INSERT INTO "+tableName+"(ID, responses, Correct_Response, Valid_Invalid, Marks) VALUES ('"+ansID+"', '"+answer+"', '"+correct+"', '"+valid+"', '"+marks+"');";

                stmt.executeUpdate(post);
            }
        catch(Exception e)
        {
            System.out.println("Exception found in postAnsDB: "+e);
        }
    }

2 个答案:

答案 0 :(得分:0)

在NetBeans中构建项目时,它会在项目的主文件夹中创建一个dist文件夹,将代码的JAR文件放在该文件夹中,并放置依赖项(所需组件的JAR文件,如UCanAccess,Jackcess,HSQLDB和Apache Commons位)成为名为lib的子文件夹。您需要确保将lib文件夹复制到目标计算机并放在与主JAR文件相同的文件夹中。查看here了解详情。

答案 1 :(得分:0)

你可以采用胖罐法。 如果你使用ant,你可以看到here

如果有maven项目,你可以使用this插件创建一个胖子

fat-jar应用程序的好处是你可以将所有内容放在一个jar中,而不需要担心lib目录,就像在另一个答案中提到的那样。

另外要注意硬编码路径,例如:

  

的字符串   strurl = “JDBC:ucanaccess:的 // C:\\用户\\保罗\\桌面\\ Spelli \\ RispostiDB.mdb”;

你的代码中有。