以前曾经问过,但我找不到我需要的答案。
1)在eclipse IDE中使用Class.forName("com.mysql.java.Driver")
一切正常。我加载了正确的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
app statrs具有相同的异常。
此外,使用System.getProperty ("java.class.path")
显示c:\temp\a1.jar
,而在IDE中我可以看到几个目录
答案 0 :(得分:1)
当您从jar运行应用程序时,您可能需要检查清单文件添加类路径依赖项的方式。看一下这个Manifest Classpath
答案 1 :(得分:1)
驱动程序为com.mysql.jdbc.Driver
,而不是com.mysql.java.Driver
。
您收到ClassNotFoundException,因为Connector / J库中没有com.mysql.java.Driver
类。
答案 2 :(得分:0)
您可以做的另一件事是将所有必需的库放在可执行jar中的单个文件中。 以下回复可能会有很大帮助:
从Eclipse 3.5开始,您还可以使用eclipse向导导出可执行jar。
使用文件>导出...并选择Runnable JAR文件。 Runnable Jar Export窗口有一个单选按钮,您可以在其中选择Extra或将所需的库打包到genratated jar中。
答案 3 :(得分:0)
如果使用-jar
执行文件,则会忽略任何外部类路径(在命令行或环境中提供)。它仅查找Class-path:
文件中的META-INF/MANIFEST.MF
条目。如果没有在那里指定MySQL jar,它将不会加载它。