JAR-файл не может найти драйвер com.mysql.jdbc - PullRequest
1 голос
/ 15 мая 2011

Я пытаюсь сделать приложение в Java, которое подключается к базе данных MySQL.Для этого я скачал соединитель mysql-connector-java-5.1.16-bin.jar.

Я также добавил путь к указанному выше файлу jar в переменную среды CLASSPATH.

Я создал приложение и выполнил файлы 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

Пожалуйста, помогите !!!

Ответы [ 2 ]

2 голосов
/ 15 мая 2011

Если ваш JAR-файл является исполняемым JAR-файлом, который вы выполняете, используя параметр -jar или дважды щелкнув по нему, то переменная окружения CLASSPATH, а также параметр -cp или -classpathигнорироваться.

Для исполняемых файлов JAR необходимо указать путь к классу в файле манифеста JAR.

См. эту страницу в руководствах по Java для Oracle для получения дополнительной информации об указании пути к классам в манифесте.file: Работа с файлами манифеста .

2 голосов
/ 15 мая 2011

Как правило, вы не хотите использовать переменную CLASSPATH, а вместо флага -cp указать местоположение библиотеки.

java  -cp /path/to/jar:/path/to/other/jar Main
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...