"No suitable driver found" 当 运行 来自 JAR
"No suitable driver found" when running from JAR
我开发了一个小游戏,其中用户输入的文本需要在 MS Access 数据库中 posted。
它在 NetBeans 中一切正常,但每当我从 JAR 文件访问它时(这最终是我需要交给我的客户的),它不会 post 任何数据库。事实上它 returns 出现以下错误:
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 文件放在该文件夹中,并且还将依赖项(所需的 JAR 文件UCanAccess、Jackcess、HSQLDB 和 Apache Commons 位等组件)放入名为 lib
的子文件夹中。您需要确保 lib
文件夹被复制到目标机器并与您的主 JAR 文件放在同一文件夹中。详情请查看 here。
您可以采用胖罐方法。
用ant就可以看到
如果有 Maven 项目,您可以使用 插件来创建 fat-jar
fat-jar 应用程序的好处是您可以将所有内容都放在一个 jar 中,而不必像另一个答案中提到的那样担心 lib 目录。
还要小心硬编码路径,例如:
String
strurl="jdbc:ucanaccess://C:\Users\Paul\Desktop\Spelli\RispostiDB.mdb";
您的代码中有。
我开发了一个小游戏,其中用户输入的文本需要在 MS Access 数据库中 posted。
它在 NetBeans 中一切正常,但每当我从 JAR 文件访问它时(这最终是我需要交给我的客户的),它不会 post 任何数据库。事实上它 returns 出现以下错误:
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 文件放在该文件夹中,并且还将依赖项(所需的 JAR 文件UCanAccess、Jackcess、HSQLDB 和 Apache Commons 位等组件)放入名为 lib
的子文件夹中。您需要确保 lib
文件夹被复制到目标机器并与您的主 JAR 文件放在同一文件夹中。详情请查看 here。
您可以采用胖罐方法。
用ant就可以看到
如果有 Maven 项目,您可以使用
fat-jar 应用程序的好处是您可以将所有内容都放在一个 jar 中,而不必像另一个答案中提到的那样担心 lib 目录。
还要小心硬编码路径,例如:
String strurl="jdbc:ucanaccess://C:\Users\Paul\Desktop\Spelli\RispostiDB.mdb";
您的代码中有。