![](/img/trans.png)
[英]java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
[英]java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver after creating a jar
我已经在程序中建立了数据库连接,但是在创建jar程序后,它会抛出一个
java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver
看来程序看不到我已安装并添加到工件的jdbc驱动程序:
我试图更改版本更改链接以在JDBC中查找类名,但是我发现了以前使用过的同一个版本,该版本在intelij中有效,但在jar中不起作用
我正在使用一个用于连接的代码
package howareyoufeeling.database;
import java.sql.*;
public class DatabaseOperations {
static Statement statement;
public static void connectWithAzureDatabase() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String connectionUrl =
"jdbc:sqlserver://howareyoufeeling.database.windows.net:1433;" +
"database=HowAreYouFeeling;" +
"user=wikimmax@howareyoufeeling;password=********;" +
"encrypt=true;trustServerCertificate=false;" +
"hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
try {
Connection connection = DriverManager.getConnection(connectionUrl);
System.out.println("Successfull DB connection " + connection.getSchema());
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void sendDataQuery(String query){
try {
statement.execute(query);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
看起来依赖项不在jar文件中,但是我通过反编译检查了它,并且文件大小匹配包括一个驱动程序
请帮忙
如果您在运行时遇到该异常,则是一个包装问题。
您的可执行JAR需要在其内部构建所有依赖项。 有一个Maven插件可以帮助您。
我建议将数据库配置移到代码之外,以便您可以更轻松地对其进行修改。
问题已解决。 最主要的错误是我尝试将jar构造为应用程序,而不是Javafx应用程序,并且数据库jar文件位于我的build jar中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.