Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver创建jar后_Java_Sql Server_Jdbc - Fatal编程技术网

java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver创建jar后

java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver创建jar后,java,sql-server,jdbc,Java,Sql Server,Jdbc,我已经在我的程序中建立了一个数据库连接,但是在创建了一个jar程序之后,它抛出了一个 java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver 看起来程序没有看到我安装并添加到工件中的jdbc驱动程序: 我尝试过在JDBC中更改一个版本更改链接以查找类名,但我发现了我以前使用过的同一个版本,它在intelij中工作,但在jar中不工作 我正在使用一个代码进行连接 打包howareyoufeelin

我已经在我的程序中建立了一个数据库连接,但是在创建了一个jar程序之后,它抛出了一个

java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver

看起来程序没有看到我安装并添加到工件中的jdbc驱动程序:

我尝试过在JDBC中更改一个版本更改链接以查找类名,但我发现了我以前使用过的同一个版本,它在intelij中工作,但在jar中不工作

我正在使用一个代码进行连接

打包howareyoufeeling.database;
导入java.sql.*;
公共类数据库操作{
静态语句;
公共静态void connectWithAzureDatabase(){
试一试{
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
}catch(classnotfounde异常){
e、 printStackTrace();
}
字符串连接URL=
“jdbc:sqlserver://howareyoufeeling.database.windows.net:1433;" +
“数据库=你感觉如何;”+
“用户=wikimmax@howareyoufeeling;密码=*******;”+
“encrypt=true;trustServerCertificate=false;”+
“hostNameInCertificate=*.database.windows.net;loginTimeout=30;”;
试一试{
Connection Connection=DriverManager.getConnection(connectionUrl);
System.out.println(“成功的数据库连接”+connection.getSchema());
statement=connection.createStatement();
}捕获(SQLE异常){
e、 printStackTrace();
}
}
公共静态void sendDataQuery(字符串查询){
试一试{
语句。执行(查询);
}捕获(SQLE异常){
e、 printStackTrace();
}
}
}
看起来依赖项不在jar文件中,但我通过反编译和包含驱动程序的文件大小匹配来检查它


请帮助

如果您在运行时遇到该异常,这是一个打包问题

您的可执行JAR需要在其内部构建所有依赖项。有一个Maven插件可以帮你做到这一点


我建议将您的数据库配置移到代码之外,这样您就可以更轻松地修改它。

如果您在运行时遇到该异常,这将是一个打包问题

您的可执行JAR需要在其内部构建所有依赖项。有一个Maven插件可以帮你做到这一点

我建议您将数据库配置移到代码之外,这样您可以更轻松地修改它。

问题已经解决。 主要的错误是,我试图将jar构建为应用程序而不是Javafx应用程序,并且数据库jar文件位于构建jar中,问题已经解决。
主要的错误是,我尝试将jar构建为应用程序而不是Javafx应用程序,数据库jar文件在我的构建jar中

你是使用Gradle还是Maven来管理依赖关系?我使用mavenCan你发布pom.xml吗?你是使用Gradle还是Maven来管理依赖关系?我使用mavenCan你发布pom.xml吗?你做了什么是指将数据库配置移到外部?另外,这很奇怪,因为我还尝试将jdbc直接添加到一个jar库中,在这种情况下,它应该可以编译。如果我在Spring Boot中编写这个应用程序,那么数据源的配置将在application.yml中完成。我会使用Hikari数据源连接池。我根本不会编写DatabaseUtils类。将数据库配置移到外部是什么意思?另外,这很奇怪,因为我还尝试将jdbc直接添加到一个jar库中,在这种情况下,它应该可以编译。如果我在Spring Boot中编写这个应用程序,那么数据源的配置将在application.yml中完成。我会使用Hikari数据源连接池。我根本不会写你的DatabaseUtils类。