连数据库的程序,打成Jar包后的提示连接数据库失败
本人写好一个连接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)
在线等,急着出货呀!请高手帮忙解决,谢谢!
问题点数:100、回复次数:17Top
1 楼tjjzs(王、)回复于 2006-03-09 12:17:36 得分 1
你的是一个界面程序吗?
错误很明显啊,就是找不到SQL SERVER的连接类,你把这个JAR包加入classpath里Top
2 楼polarman(北极人http://blog.csdn.net/polarman)回复于 2006-03-09 12:23:32 得分 1
找不到SQL SERVER的连接类,你把这个JAR包加入classpath里Top
3 楼imA(男的不会,会的不男)回复于 2006-03-09 12:44:27 得分 1
找不到驱动类。把驱动jar文件同时打包到你的jar文件中。Top
4 楼xiangzhengyan(千里单骑走西藏)回复于 2006-03-09 13:06:47 得分 1
来晚了接分Top
5 楼jacbo(今天你坚持了没有)回复于 2006-03-09 13:17:17 得分 1
@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 MDIProTop
6 楼cqm2099(~人生小弟~)回复于 2006-03-09 17:15:04 得分 0
-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文件是没有问题的.
高手支支招,高分相送!Top
7 楼aywrenyue(基本功修炼中……)回复于 2006-03-09 18:53:53 得分 1
classpath问题Top
8 楼zx2002027(http://www.netyi.net/in.asp?id=zx2002027)回复于 2006-03-09 19:04:20 得分 1
在工程中引入JDBC的三个包Top
9 楼cqm2099(~人生小弟~)回复于 2006-03-09 20:59:48 得分 0
有没有谁有成功实例,本人MAIL:cqm2008@163.comTop
10 楼nationally(自由鸟)回复于 2006-03-09 23:15:36 得分 1
要运行jar文件,你的***.jar/META-INF下必须包含一个MANIFEST.MF文件,里面有配置你的程序入口。Top
11 楼cqm2099(~人生小弟~)回复于 2006-03-10 09:05:33 得分 0
晕,我的JAR文件不是不能运行,可以运行,但主要问题是去运行带有SQL执行的窗口模块时就会报链接数据库失败。但不打包成JAR文件直接运行CLASS文件是没问题的。Top
12 楼xiangzhengyan(千里单骑走西藏)回复于 2006-03-10 11:26:19 得分 92
我试过,确实很麻烦,但可以这样做:
比如你打了一个包 jdbctest.jar。
在msssqlserver.jar,msutil.jar,msbase.jar三个jar文件中都有一个叫com的包,把它们都提取出来放在jdbctest.jar的根目录下即可。
java jdbctest.jar
如果你需要,我可email给你Top
13 楼xiangzhengyan(千里单骑走西藏)回复于 2006-03-10 11:27:37 得分 0
错了
java jdbctest.jar 应该为 java -jar jdbctest.jar
Top
14 楼xiangzhengyan(千里单骑走西藏)回复于 2006-03-10 11:39:48 得分 0
都给你发了emailTop
15 楼cqm2099(~人生小弟~)回复于 2006-03-10 11:44:17 得分 0
请问:xiangzhengyan(千里单骑走西藏)
你的方法的确管用,你是把所有提取出来的com包里的文件放进去还是只要基中的某些文件就可以?
谢谢!Top
16 楼cqm2099(~人生小弟~)回复于 2006-03-10 11:47:40 得分 0
好的,我查收一下!谢谢xiangzhengyan(千里单骑走西藏)Top
17 楼cqm2099(~人生小弟~)回复于 2006-03-10 12:17:04 得分 0
OK了,散分了!Top




