gpt4 book ai didi

java - 无法通过 class.forName ("com.mysql.jdbc.Driver"加载类 com.mysql.jdbc.Driver )

转载 作者:行者123 更新时间:2023-11-29 16:59:08 35 4
gpt4 key购买 nike

我正在做一个与 mySQL 数据库交互的简单 java 应用程序。它应该在 Ubuntu 服务器上运行。我正在 Intellij IDEA 中开发它,并且它在那里运行得很好。

但是,当我生成 jar 文件并在 Ubuntu 命令行(服务器和我的家用电脑都运行 ubuntu)中启动它时,没有任何效果。

我只需输入 java -jar %my_jar_filename% 并得到错误

"Couldn't load main class ... Class.forName("com.mysql.jdbc.Driver")"

我知道从java 5开始(我不确定这里是哪个版本,我使用8)就没有必要写它了,但是如果我不写它我就会得到

"No suitable driver found"

我用谷歌搜索了这个问题,找到的唯一解决方案是确保驱动程序确实存在于 PC 上并添加 Class.forName("");

这对我没有帮助。驱动程序存在,因为在IDE中程序可以工作。我认为问题出在java选项上。我尝试通过 java -cp,

添加 mysql 连接器但它给了我同样的错误,甚至尝试通过 javac 从源代码在终端中编译程序,但也出现同样的问题。在我的电脑上,mysql 连接器位于文件夹 usr/share/java/

应用程序最终工作的服务器具有相同的设置我做错了什么?

**已解决:**谢谢大家解决方案非常简单。这个答案有帮助https://stackoverflow.com/a/45303637/9184305

最佳答案

这可能是因为您使用了错误的驱动程序 - 我们使用此类:

com.mysql.cj.jdbc.Driver

阅读您的描述后,您可能还会遇到这样的问题:您的代码可以在 IDE 中运行,但当您尝试从 jar/命令行运行它时却无法运行。

在这种情况下,

  1. 您是如何创建 jar 的?
  2. 您是否将所有依赖项与 jar 一起部署?
  3. 您是否有指示您的 Main 类的 MANIFEST.MF 文件?

关于java - 无法通过 class.forName ("com.mysql.jdbc.Driver"加载类 com.mysql.jdbc.Driver ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52398120/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com