【问题标题】:Jar file cannot find the com.mysql.jdbc driverjar 文件找不到 com.mysql.jdbc 驱动程序
【发布时间】:2011-05-15 18:20:11
【问题描述】:

我正在尝试用 java 制作一个连接到 mysql 数据库的应用程序。为此,我下载了mysql-connector-java-5.1.16-bin.jar 连接器。

我还在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

请帮忙!!!

【问题讨论】:

    标签: java mysql jdbc


    【解决方案1】:

    如果您的 JAR 文件是您通过使用 -jar 选项或双击它执行的可执行 JAR 文件,那么 CLASSPATH 环境变量以及 -cp-classpath 选项将被忽略。

    对于可执行的 JAR 文件,您必须在 JAR 的清单文件中指定类路径。

    有关在清单文件中指定类路径的更多详细信息,请参阅 Oracle 的 Java 教程中的此页面:Working with Manifest Files

    【讨论】:

      【解决方案2】:

      通常您不想使用 CLASSPATH 变量而是使用 -cp 标志来指定库位置。

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

      【讨论】:

      猜你喜欢
      • 2020-09-09
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2019-07-17
      相关资源
      最近更新 更多