每当我运行以下代码时:
import com.mysql.jdbc.Driver;
public void insertIntoMysql() {
// Print out classloader information
ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader) cl).getURLs();
String urlStr = "";
for (int i=0; i < urls.length; i++) {
urlStr += urls[i].getFile() + "\n";
}
System.out.println("Classpath:\n" + urlStr);
// connect to mysql
Class.forName("com.mysql.jdbc.Driver");
String myUrl = "jdbc:mysql://localhost:3306/Compass";
Connection conn = DriverManager.getConnection(myUrl, "root", "newpoint");
...
}
我在 Class.forName 行上收到“ClassNotFoundException:com.mysql.jdbc.Driver”错误。但是,我的类路径打印为:
Classpath:
...
/C:/myProjectDir/
我的类路径中有以下 jar“/C:/myProjectDir/mysql-connector-java-5.0.8-bin.jar”。
我重新启动了程序,以防类加载器在程序启动时加载所有内容,但我不断收到该错误。
有什么想法吗?
目前,您的类路径上似乎只有项目目录,而不是 mysql-connector-java-5.0.8-bin.jar 文件本身。
在 Java 中,类路径中包含的内容的规则如下:
- 对于未命名包中的类文件,您需要包含包含类文件的目录
- 对于命名包中的类文件,包括包含根包的目录,根包是完整包名称中的第一个包
- 对于包含类文件的 JAR 或 zip 文件,请包含 zip 或 JAR 文件的名称
要获取 mysql 驱动程序,您需要按名称将驱动程序 jar 添加到类路径中:
Classpath:
...
/C:/myProjectDir/
/C:/myProjectDir/mysql-connector-java-5.0.8-bin.jar
...
欲了解更多信息,请查看关于 PATH 和 CLASSPATH 的 Java 教程 https://docs.oracle.com/javase/tutorial/essential/environment/paths.html,以及 Oracle 文档设置类路径 https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)