繁体   English   中英

java.lang.ClassNotFoundException:创建jar后的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM