【问题标题】:Can't run Java class with MySQL connector from Termainal无法从终端使用 MySQL 连接器运行 Java 类
【发布时间】:2014-06-20 05:53:23
【问题描述】:

没有人能够提出可行的解决方案,因此我再次尝试将其作为新帖子。

简单地说,我无法从命令行运行我的 java 类 Version.class,它使用 mysql 连接器 .jar 文件。它在 Eclipse 中运行良好,只是不能在终端中运行。这是我的文件结构:

我可以从 Eclipse IDE 成功执行,但是在尝试从终端执行 java .class 文件时,我遇到了一些问题。

~/dropbox/workspace/mysqltut/src/zetcode/Version.java ~/dropbox/workspace/mysqltut/src/zetcode/Version.class ~/dropbox/workspace/mysqltut/lib/mysql-connector-java-5.1.30-bin.jar

在终端导航到~/dropbox/workspace/mysqltut/src/ 后,我运行以下命令:

java -cp .:lib/mysql-connector-java-5.1.30-bin.jar zetcode/Version

May 03, 2014 10:54:31 PM zetcode.Version main
SEVERE: No suitable driver found for jdbc:mysql://localhost:3306/
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/
    at java.sql.DriverManager.getConnection(DriverManager.java:596)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at zetcode.Version.main(Version.java:24)

我的语法/文件结构有问题还是没有正确安装?

【问题讨论】:

  • 请出示代码。首选可编译/可运行的示例。 (@prabugp 是的,不知道我有足够的代表发表评论)
  • :) 发生。在看到您确实有足够的代表后,我发布了。
  • 我已经为完全相同的问题提供了答案:stackoverflow.com/a/24440716/2008247

标签: java mysql eclipse macos


【解决方案1】:

您正在从 src 文件夹运行它。并且 lib 是 src 的兄弟而不是孩子。因此,当您将类路径设置为 lib 时,我相信它会在 src 文件夹中寻找一个 lib。你能把你的类路径调整到 .:../lib/... 或者上一层到 mysqsltut 并运行程序吗?

【讨论】:

  • 太棒了!这行得通。非常感谢,我快疯了。虽然这有效,但您可以推荐一种传统的文件结构吗? lib应该把我文件夹放在别的地方吗?您还可以解释在终端中移动文件结构的各种开关吗?我假设“.:”与“../”相同,对吗?什么是 ”。;”还有一些比较常用的开关?再次感谢!
  • 另外,如果我升级到 mysqltut,我将如何运行它?使用 src/zetcode/Version 不起作用,因为它返回 Error: Could not find or load main class src.zetcode.Version
  • 啊..问题,问题,问题。超级,你做对了。您可能会从这里开始:docs.oracle.com/javase/6/docs/technotes/tools/windows/…,它解释了类路径是什么以及如何以各种方式设置它。要回答你的问题,.是当前目录, : 是 linux 的路径分隔符,我相信。 ../ 是上一级。至于您的第二条评论,请尝试 src/zetcode.Version 并让我知道这是否有效。另外,如果您的原始问题得到了回答,请标记它。
  • 谢谢普拉布。大约一小时前,您的建议生效后,我就立即进行了标记。没有显示吗?
  • 从 mysqltut 开始,按照你的建议使用 java -cp lib/mysql-connector-java-5.1.30-bin.jar src/zetcode.Version 是行不通的。它只返回Error: Could not find or load main class src.zetcode.Version 我相信在执行类文件时你必须在包文件夹中,因此为什么当我在 src 中时只识别 zetcode.Version。
猜你喜欢
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
  • 2012-03-03
  • 2015-05-25
  • 2016-07-27
  • 2012-12-02
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多