【问题标题】:Runtime error while executing JAR file from CMD: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver从 CMD 执行 JAR 文件时出现运行时错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
【发布时间】:2020-03-09 01:52:06
【问题描述】:

我一直在通过 XAMPP 提供的 Apache 服务器在 NetBeans IDE 中使用 MySQL 数据库开发 java jFrame 项目。完成后,我将项目构建成一个jar文件。当项目在 IDE 中执行时,它可以完美运行。但是当jar文件被执行时,从cmd中弹出如下错误:SEVERE: null...java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。我一直在互联网上寻找解决方案,但找不到任何合适的解决方案。

使用的JDK: JDK 12 使用的 SQL 驱动程序: MySQL Connector/J 5.1.47

提前致谢。

【问题讨论】:

    标签: java mysql jar classpath classnotfoundexception


    【解决方案1】:

    你需要构建一个 fat jar,它会包含所有的依赖。默认情况下,Netbeans 不会构建 fat jar。

    查看此链接:https://dzone.com/articles/how-build-fat-jar-using

    【讨论】:

    • 构建 Fat jar 时出错
    • 没有在 dist 文件夹中创建 lib 文件夹...因此在构建 Fat Jar 时出错
    【解决方案2】:

    确保您的 MySQL 连接器 jar 包含在主 jar 位置内的 lib/ 子文件夹中。然后你可以像下面这样运行你的应用程序(通过指定类路径):

    java -cp yourJar.jar:lib/* name.of.your.Main.class
    

    提到的另一个选项是构建一个胖 jar,其中所有外部库都将包含在其中,在这种情况下,它可以使用 java -jar yourFatjar.jar 运行

    【讨论】:

    • 我实际上在我的项目文件夹中找不到任何“lib”文件夹...里面没有任何地方
    • 在 dist 文件夹中创建了一个自定义 lib 文件夹,其中包含必要的 jar 文件和 classes 文件夹...但是尝试从 cmd 运行 jar 时发生错误:Class not found
    【解决方案3】:

    嗯,问题是由于 NetBeans IDE 的一些技术问题而发生的。在从 IDE 构建项目时,包含所有关联(引用)jar 文件的“lib”文件夹也应与 jar 文件一起在“dist”文件夹中创建。但是在这里,没有创建“lib”文件夹。所以,我只是卸载并重新安装了 NetBeans 软件,问题就解决了。现在,我在“dist”文件夹中自动创建了“lib”文件夹(应该是这样),我的最终 jar 文件正在完美执行。感谢@btreport 和@funkyjelly 的快速响应和帮助。

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 2012-06-20
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 2023-01-28
      • 2019-04-29
      • 2019-10-31
      • 2012-07-28
      相关资源
      最近更新 更多