SQL使用dist时找不到合适的驱动程序

时间:2014-09-06 20:37:56

标签: java netbeans jdbc

我已经开发了一个连接到MS SQL数据库的软件

到目前为止,它在NetBeans中运行良好,但是当尝试在Netbeans创建的dist文件夹中使用jar版本时,我发现了#34;找不到合适的驱动程序"错误

我真的很困惑,因为我已经尝试了一些关于在线错误的内容,例如:

  • 清洁&建立(很多次)
  • 将JDBC4.jar目录添加到Windows CLASSPATH
  • 注册驱动程序;的Class.forName(...)
  • 将文件引用放在build.xml

以及我能找到的任何其他内容。

我使用最新的稳定JRE,JDK和Netbeans以及Microsoft的JDBC 4.0。

我不知道我需要包含哪些代码供人们帮助,所以请告诉我,我会提供您需要查看的任何内容。

编辑:

我用来连接的网址是:" jdbc:sqlserver://Room-PC\\sqlexpress"这在从NetBeans运行时有效,但在dist文件夹中运行jar文件时无效。

第二次编辑:

这是用于加载和首次连接到数据库的代码。它位于一个名为DatabaseHandler的独立类中。这导入了java.sql。*;并且从类的构造函数中调用此连接代码。

正如我所说,从netbeans IDE使用它时效果很好,但不是双击jar文件或命令行。

username = "adam";
password = "*****"

try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con = DriverManager.getConnection(
                                 "jdbc:sqlserver://Room-PC\\sqlexpress", username, password);

        } catch (SQLException e) {
            System.out.println("Error " + e + "\n");
        } catch (ClassNotFoundException cnfe) {
            System.out.println("OOPS CLASS NOT FOUND");
        }

我的Windows CLASSPATH变量是:

" C:\ JDBC \ sqljdbc_3.0 \ ENU \ sqljdbc4.jar" (没有引号)

我尝试使用Luiggi发布的命令来运行该程序,但这并没有改变任何内容

所以基本上我只是使用java -jar myJar.jar运行(没有-jar它没有找到主类)

感谢所有帮助到目前为止,伙计们,我用这个来绞尽脑汁!

2 个答案:

答案 0 :(得分:0)

必须为编译和执行时间设置类路径。目前,您只是在编译时才这样做,但不是为了运行时。

在运行时的类路径中设置库取决于项目的类型:

  • 独立应用程序:您需要在-classpath属性中设置外部库。在命令行中,这将是:

    $ java -classpath "./lib/*;." yourJar.jar
    

    其中lib是放置所有外部库的文件夹,yourJar.jar是文件夹根目录中的Java独立应用程序。这有点像这样:

    - some_folder
      + yourJar.jar
      - lib
        + thirdPartyLib1.jar
        + thirdPartyLib2.jar
        + (and on...)
    

    请注意,Netbeans只会在yourJar.jar文件夹中创建和编写dist不会包含任何第三方图书馆。

  • Web应用程序:将所有第三方库放入WEB-INF / lib文件夹。

答案 1 :(得分:0)

@Luiggi Mendoza感谢您的回答。它奏效了!

我需要做的就是添加" /lib.sqljdbc4.jar"到清单文件中的CLASSPATH标题

所以:

Class-Path: resources/ lib/sqljdbc4.jar

这就是我所需要的全部内容。