我已经开发了一个连接到MS SQL数据库的软件
到目前为止,它在NetBeans中运行良好,但是当尝试在Netbeans创建的dist文件夹中使用jar版本时,我发现了#34;找不到合适的驱动程序"错误
我真的很困惑,因为我已经尝试了一些关于在线错误的内容,例如:
以及我能找到的任何其他内容。
我使用最新的稳定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它没有找到主类)
感谢所有帮助到目前为止,伙计们,我用这个来绞尽脑汁!
答案 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
这就是我所需要的全部内容。