JAR 文件未连接到 SQL Server

问题描述 投票:0回答:1

这是一个小程序,单击 GUI 中的按钮后会连接到 SQL Server 数据库,并检查连接是否正常。我的问题是:在 NetBeans IDE 中运行该程序时,它工作正常并且连接完成,没有任何问题,但是在构建该项目然后启动 jar 文件时,该程序无法连接,我已经检查了所有必要的内容:类路径、jdbc 驱动程序在那里(在 lib 目录中)等,也没有显示错误消息。

所有这些都在同一台本地计算机中。这是程序:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    try {            
        String url = "jdbc:sqlserver://MY_PC\\MYSQLSRV;database=my_database";
        String user="myuser";
        String pass="mypass";
        f = new JFrame();
        
            Connection con = DriverManager.getConnection(url,user,pass);
            if(con != null){
                JOptionPane.showMessageDialog(f, "Connection etablie avec succes");
            }
           
        } catch (SQLException ex) {
            //Logger.getLogger(AuthTest.class.getName()).log(Level.SEVERE, null, ex.getMessage());
            JOptionPane.showMessageDialog(f, "Pas de connection");
        }   
    }   
java sql-server jdbc
1个回答
0
投票

听起来您的 JAR 在 NetBeans 外部运行时可能无法获取必要的 SQL Server JDBC 驱动程序。以下是一些有助于解决此问题的故障排除步骤:

验证驱动程序包含

确保 SQL Server JDBC 驱动程序 JAR 包含在打包的应用程序中。如果您的主 JAR 旁边有一个

lib
文件夹,请将驱动程序 JAR 放在那里。

指定类路径

运行 JAR 时,您可能需要显式设置类路径以包含驱动程序。例如,如果您的 JAR 是

myapp.jar
并且 JDBC 驱动程序位于
lib
目录中,您可以像这样运行它:

java -cp "myapp.jar;lib/*" com.yourpackage.MainClass

此命令包括主 JAR 和类路径上

lib
目录中的所有 JAR。

创建一个 Fat JAR (Uber JAR)

如果指定类路径不方便,请考虑将所有依赖项捆绑到一个“胖”JAR 中。如果您使用 Maven,则可以使用

maven-shade-plugin
来执行此操作,或者如果您使用 Gradle,请尝试使用
shadow
插件。

示例:

将此添加到您的

pom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

这将创建一个包含所有依赖项的 JAR。

检查隐藏的错误

从命令行运行 JAR 以查看是否存在任何其他错误:

java -jar myapp.jar

有时,错误消息或异常会出现在控制台上,但不会出现在 GUI 对话框中,这可以提供更多信息。

确保 Java 版本一致

确保 NetBeans 中的 Java 版本与您用于运行 JAR 的版本相匹配。 Java 版本不匹配有时会导致 JDBC 驱动程序出现意外行为。

希望这些解决方案之一能够解决该问题!如果您在从命令行运行时看到任何特定错误,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.