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

Java SQL使用dist时未找到合适的驱动程序,java,netbeans,jdbc,Java,Netbeans,Jdbc,我正在开发一个连接到MS SQL数据库的软件 到目前为止,在NetBeans中它工作得很好,但是当尝试在NetBeans创建的dist文件夹中使用jar版本时,我遇到了“找不到合适的驱动程序”错误 这真的令人费解,因为我已经尝试了我能在网上找到的关于错误的一切,例如: 清洁和建造(很多次) 将JDBC4.jar目录添加到Windows类路径 将驾驶员登记到驾驶室;Class.forname(…) 将文件引用放入build.xml中 还有我能找到的任何东西 我正在使用最新的稳定的JRE、JDK

我正在开发一个连接到MS SQL数据库的软件

到目前为止,在NetBeans中它工作得很好,但是当尝试在NetBeans创建的dist文件夹中使用jar版本时,我遇到了“找不到合适的驱动程序”错误

这真的令人费解,因为我已经尝试了我能在网上找到的关于错误的一切,例如:

  • 清洁和建造(很多次)
  • 将JDBC4.jar目录添加到Windows类路径
  • 将驾驶员登记到驾驶室;Class.forname(…)
  • 将文件引用放入build.xml中
还有我能找到的任何东西

我正在使用最新的稳定的JRE、JDK和Netbeans以及来自微软的JDBC4.0

我不知道我需要包括什么代码来帮助人们,所以请告诉我,我会提供您需要查看的任何内容

编辑:

我用来连接的URL是:“
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类路径变量是:

“;C:\JDBC\sqljdbc_3.0\enu\sqljdbc4.jar”(不带引号)

我试着用Luiggi发布的命令运行程序,但没有改变任何事情

因此,基本上我只是使用java-jar myJar.jar运行(没有-jar,就找不到主类)


谢谢你们的帮助,伙计们,这件事让我绞尽脑汁

必须为编译和执行时间设置类路径。目前,您只在编译时执行此操作,而不在运行时执行此操作

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

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

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

    - some_folder
      + yourJar.jar
      - lib
        + thirdPartyLib1.jar
        + thirdPartyLib2.jar
        + (and on...)
    
    请注意,Netbeans将只在
    dist
    文件夹中创建和写入
    yourJar.jar
    将不包含任何第三方库

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


    • @Luiggi Mendoza谢谢你的回答。成功了

      我所需要做的就是将“/lib.sqljdbc4.jar”添加到清单文件中的类路径标题中

      因此:


      这就是我所需要的。

      嗨,Luiggi,我尝试了上面的命令,但不幸的是,它给了我同样的错误。在与主jar文件相同的目录中有一个lib文件夹,但它仍然不工作:/n它现在发出“发生致命异常:无法创建虚拟机”错误,不确定为什么,因为cmd看起来应该工作。再次感谢您迄今为止的帮助:)好的,打开了一个新的命令提示符,它现在只是再次给出了“找不到合适的驱动程序”错误。该命令在Windows环境下是否会像为linux编写的一样工作?@ajp8868在进一步测试后再次修复了该命令。仍然是相同的“未找到驱动程序”错误:/I我不理解Microsoft的说明为什么不能正常工作。可能是因为我使用的是sqljdbc4吗?您是如何将驱动程序添加到项目中的?我在属性->库->编译和运行中添加了驱动程序。在NetBeansproperties->libraries->compile->add jar/Folder?是的,这就是我的意思:)它适用于应用程序需要的任何库,包括JDBC驱动程序。它与实际的DBMS无关(或与库所做的任何事情无关)
      Class-Path: resources/ lib/sqljdbc4.jar