Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;找不到合适的驱动程序“;从JAR运行时_Java_Ms Access_Netbeans_Jar_Ucanaccess - Fatal编程技术网

Java &引用;找不到合适的驱动程序“;从JAR运行时

Java &引用;找不到合适的驱动程序“;从JAR运行时,java,ms-access,netbeans,jar,ucanaccess,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 p

我开发了一个小游戏,其中用户输入的文本需要发布到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);
        }
    }

在NetBeans中构建项目时,它会在项目的主文件夹中创建一个
dist
文件夹,将代码的JAR文件放在该文件夹中,并将依赖项(UCanAccess、Jackccess、HSQLDB和Apache Commons bits等所需组件的JAR文件)放在名为
lib
的子文件夹中。您需要确保
lib
文件夹被复制到目标机器上,并与主JAR文件放在同一个文件夹中。查看详细信息。

您可以选择胖罐方法。 如果使用ant,您可以看到它

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

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

还要注意硬编码路径,如:

串 strurl=“jdbc:ucanaccess:/C:\\Users\\Paul\\Desktop\\Spelli\\RispostiDB.mdb”


在NetBeans中构建项目时,它会在项目的主文件夹中创建一个
dist
文件夹,将代码的JAR文件放在该文件夹中,并将依赖项(UCanAccess、Jackccess、HSQLDB和Apache Commons等所需组件的JAR文件)放在该文件夹中进入名为
lib
的子文件夹。您需要确保
lib
文件夹被复制到目标机器上,并与主JAR文件放在同一个文件夹中。看看细节,谢谢!除了您的建议之外,我还将NetBeans中的所有Jar文件添加到了库下。我的程序现在功能齐全了,非常感谢!!