连数据库的程序,打成Jar包后的提示连接数据库失败

时间:2022-09-19 12:27:29
本人写好一个连接SQL Server的程序,在用
@ECHO OFF
D:
CD D:\JavaCode\MDIPro
E:\Borland\JBuilder2005\jdk1.4\bin\java.exe MDIPro
些BAT DOS命令执行时没有问题,但将所有CLASS文件打包成JAR文件后运行JAR文件时则会报错:连接数据库失败(此为我程序中已经设置的错误提示)

@ECHO OFF
D:
CD D:\JavaCode\MDIPro
E:\Borland\JBuilder2005\jdk1.4\bin\java -jar MDIPro.jar 命令执行是DOS屏幕中的错误提示是:
com.microsoft.jdbc.sqlserver.SQLServerDriver
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:141)
        at DataBaseManager.getConnection(DataBaseManager.java:23)
        at MDIPro$4.actionPerformed(MDIPro.java:202)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
        at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)
        at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:943)
        at java.awt.Component.processMouseEvent(Component.java:5100)
        at java.awt.Component.processEvent(Component.java:4897)
        at java.awt.Container.processEvent(Container.java:1569)
        at java.awt.Component.dispatchEventImpl(Component.java:3615)
        at java.awt.Container.dispatchEventImpl(Container.java:1627)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
        at java.awt.Container.dispatchEventImpl(Container.java:1613)
        at java.awt.Window.dispatchEventImpl(Window.java:1606)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)java.lang.NullPointerException
        at DataBaseManager.getResult(DataBaseManager.java:63)
        at MDIPro$4.actionPerformed(MDIPro.java:207)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
        at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)
        at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:943)
        at java.awt.Component.processMouseEvent(Component.java:5100)
        at java.awt.Component.processEvent(Component.java:4897)
        at java.awt.Container.processEvent(Container.java:1569)
        at java.awt.Component.dispatchEventImpl(Component.java:3615)
        at java.awt.Container.dispatchEventImpl(Container.java:1627)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
        at java.awt.Container.dispatchEventImpl(Container.java:1613)
        at java.awt.Window.dispatchEventImpl(Window.java:1606)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
在线等,急着出货呀!请高手帮忙解决,谢谢!

17 个解决方案

#1


你的是一个界面程序吗?
错误很明显啊,就是找不到SQL SERVER的连接类,你把这个JAR包加入classpath里

#2


找不到SQL SERVER的连接类,你把这个JAR包加入classpath里

#3


找不到驱动类。把驱动jar文件同时打包到你的jar文件中。

#4


来晚了接分

#5


@ECHO OFF
D:
CD D:\JavaCode\MDIPro
E:\Borland\JBuilder2005\jdk1.4\bin\java.exe  MDIPro
些BAT DOS命令执行时没有问题,但将所有CLASS文件打包成JAR文件后运行JAR文件时则会报错:连接数据库失败(此为我程序中已经设置的错误提示)

@ECHO OFF


E:\Borland\JBuilder2005\jdk1.4\bin\java.exe  -classpath yourpath/mos三个jar MDIPro

#6


-Classpath: C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
上面三个文件都有打包进去,但问题依旧,我是要运行MDIPro.jar包,运行他时出错,环境变量中有加JDBC的,如果只运行MDIPro.class文件是没有问题的.
高手支支招,高分相送!

#7


classpath问题

#8


在工程中引入JDBC的三个包

#9


有没有谁有成功实例,本人MAIL:cqm2008@163.com

#10


要运行jar文件,你的***.jar/META-INF下必须包含一个MANIFEST.MF文件,里面有配置你的程序入口。

#11


晕,我的JAR文件不是不能运行,可以运行,但主要问题是去运行带有SQL执行的窗口模块时就会报链接数据库失败。但不打包成JAR文件直接运行CLASS文件是没问题的。

#12


我试过,确实很麻烦,但可以这样做:
比如你打了一个包 jdbctest.jar。
在msssqlserver.jar,msutil.jar,msbase.jar三个jar文件中都有一个叫com的包,把它们都提取出来放在jdbctest.jar的根目录下即可。
java jdbctest.jar

如果你需要,我可email给你

#13


错了
java jdbctest.jar 应该为 java -jar jdbctest.jar

#14


都给你发了email

#15


请问:xiangzhengyan(千里单骑走*) 
你的方法的确管用,你是把所有提取出来的com包里的文件放进去还是只要基中的某些文件就可以?
谢谢!

#16


好的,我查收一下!谢谢xiangzhengyan(千里单骑走*)

#17


OK了,散分了!

#1


你的是一个界面程序吗?
错误很明显啊,就是找不到SQL SERVER的连接类,你把这个JAR包加入classpath里

#2


找不到SQL SERVER的连接类,你把这个JAR包加入classpath里

#3


找不到驱动类。把驱动jar文件同时打包到你的jar文件中。

#4


来晚了接分

#5


@ECHO OFF
D:
CD D:\JavaCode\MDIPro
E:\Borland\JBuilder2005\jdk1.4\bin\java.exe  MDIPro
些BAT DOS命令执行时没有问题,但将所有CLASS文件打包成JAR文件后运行JAR文件时则会报错:连接数据库失败(此为我程序中已经设置的错误提示)

@ECHO OFF


E:\Borland\JBuilder2005\jdk1.4\bin\java.exe  -classpath yourpath/mos三个jar MDIPro

#6


-Classpath: C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
上面三个文件都有打包进去,但问题依旧,我是要运行MDIPro.jar包,运行他时出错,环境变量中有加JDBC的,如果只运行MDIPro.class文件是没有问题的.
高手支支招,高分相送!

#7


classpath问题

#8


在工程中引入JDBC的三个包

#9


有没有谁有成功实例,本人MAIL:cqm2008@163.com

#10


要运行jar文件,你的***.jar/META-INF下必须包含一个MANIFEST.MF文件,里面有配置你的程序入口。

#11


晕,我的JAR文件不是不能运行,可以运行,但主要问题是去运行带有SQL执行的窗口模块时就会报链接数据库失败。但不打包成JAR文件直接运行CLASS文件是没问题的。

#12


我试过,确实很麻烦,但可以这样做:
比如你打了一个包 jdbctest.jar。
在msssqlserver.jar,msutil.jar,msbase.jar三个jar文件中都有一个叫com的包,把它们都提取出来放在jdbctest.jar的根目录下即可。
java jdbctest.jar

如果你需要,我可email给你

#13


错了
java jdbctest.jar 应该为 java -jar jdbctest.jar

#14


都给你发了email

#15


请问:xiangzhengyan(千里单骑走*) 
你的方法的确管用,你是把所有提取出来的com包里的文件放进去还是只要基中的某些文件就可以?
谢谢!

#16


好的,我查收一下!谢谢xiangzhengyan(千里单骑走*)

#17


OK了,散分了!