2011-05-15 15 views
1

我想在java中連接到mysql數據庫的應用程序。爲此,我下載了mysql-connector-java-5.1.16-bin.jar連接器。Jar文件找不到com.mysql.jdbc驅動程序

我還在CLASSPATH環境變量中添加了上述jar文件的路徑。

我創建了應用程序並執行了java文件並正確執行。

然後,我創建的應用程序的jar文件,並試圖執行它,然後我得到了以下錯誤

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at CanteenCounter.refresh(CanteenCounter.java:73) 
    at CanteenCounter$1.actionPerformed(CanteenCounter.java:30) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$000(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 

例外:com.mysql.jdbc.Driver

我覺得jar文件無法找到com.mysql.jdbc.Driver

請幫忙!!!

回答

1

如果你的JAR文件是通過使用-jar選項執行,或通過雙擊它,然後CLASSPATH環境變量還有-cp-classpath選項將被忽略可執行的JAR文件。

對於可執行JAR文件,必須在JAR的清單文件中指定類路徑。

有關在清單文件中指定類路徑的更多詳細信息,請參閱Oracle的Java教程中的此頁:Working with Manifest Files

2

通常,您不想使用CLASSPATH變量,而是使用-cp標誌指定庫位置。

java -cp /path/to/jar:/path/to/other/jar Main 
+0

但是如果我想創建一個可執行的jar文件。我想用雙擊打開它 – Jonah 2011-05-15 18:26:18

+1

真的不同的問題,但可以找到一個很好的答案。這裏:http://stackoverflow.com/questions/2018257/how-to-combine-library-with-my-jar也在這裏http://www.ibm.com/developerworks/library/j-jar/index.html – zellio 2011-05-15 18:31:44

+0

謝謝Mimisbrunnr IBM鏈接非常有幫助 – Jonah 2011-05-15 18:41:42