0

以前有人问过这个问题,但我找不到我需要的答案。

1)Class.forName("com.mysql.java.Driver")在eclipse IDE中使用一切正常。我加载了正确的 jar (mysql-connector-java-5.1.20-bin.jar),没有例外。

当我为我的应用程序 a1.jar 创建一个 jar 并双击该 jar 时,我得到了ClassnotFoundException.

我在 Windows XP 中创建了一个 .bat 文件

java -classpath c:\temp\mysql-connector-java-5.1.20-bin.jar -jar c:\temp\a1.jar应用程序 statrs 具有相同的例外。

此外,在 IDE 中使用System.getProperty ("java.class.path")节目c:\temp\a1.jar时,我可以看到几个目录

4

4 回答 4

1

司机是com.mysql.jdbc.Driver,不是com.mysql.java.Driver

您收到 ClassNotFoundException,因为 Connector/J 库中没有com.mysql.java.Driver类。

于 2012-05-31T16:29:10.267 回答
1

当您从 jar 运行应用程序时,您可能需要检查添加类路径依赖项的清单文件方式。看看这个清单类路径

于 2012-05-31T16:21:15.073 回答
0

您可以做的另一件事是将所有必需的库放在可执行 jar 中的单个文件中。以下回复可能会有很大帮助:

从 Eclipse 3.5 开始,您还可以使用 eclipse 向导导出可执行的 jar。

使用 File > Export... 并选择 Runnable JAR 文件。Runnable Jar Export 窗口有一个单选按钮,您可以在其中选择提取或将所需的库打包到生成的 jar 中。

出口 可运行的 JAR 文件导出

于 2012-05-31T16:32:19.343 回答
0

如果您使用 执行文件-jar,则任何外部类路径(在命令行或环境中提供)都将被忽略。它只查看文件中的Class-path:条目META-INF/MANIFEST.MF。如果未在此处指定 MySQL jar,则不会加载它。

于 2012-05-31T18:28:34.173 回答