本人写好一个连接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)
在线等,急着出货呀!请高手帮忙解决,谢谢!

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

    @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
      

  5.   

    -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文件是没有问题的.
    高手支支招,高分相送!
      

  6.   

    有没有谁有成功实例,本人MAIL:[email protected]
      

  7.   

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

  8.   

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

  9.   

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

  10.   

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

  11.   

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

  12.   

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