从 JAR 运行时"No suitable driver found"



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

它在NetBeans中工作得很好,但每当我从JAR文件访问它时(这是我最终需要交给我的客户端),它不会向数据库发布任何内容。实际上,它返回以下错误:

java.sql.SQLException: No suitable driver found for jdbc:ucanaccess://C:UsersPaulDesktopSpelliRispostiDB.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);
        }
    }

当你在NetBeans中构建项目时,它会在项目的主文件夹中创建一个dist文件夹,将代码的JAR文件放在该文件夹中,并将依赖项(所需组件的JAR文件,如UCanAccess, jackess, HSQLDB和Apache Commons bits)放入名为lib的子文件夹中。您需要确保将lib文件夹复制到目标机器中,并将其放在与主JAR文件相同的文件夹中。

您可以采用脂肪罐方法。如果使用ant,可以在这里看到。

如果你有一个maven项目,你可以使用这个插件来创建一个fat-jar

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

也要小心硬编码的路径,如:

字符串strurl = " jdbc: ucanaccess: //C: 保罗 用户桌面 Spelli RispostiDB.mdb";

相关内容

  • 没有找到相关文章

最新更新