【发布时间】:2015-03-25 18:20:46
【问题描述】:
每当我运行以下代码时:
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”。
我已重新启动程序,以防万一程序启动时 ClassLoader 正在加载所有内容,但我不断收到该错误。
有什么想法吗?
【问题讨论】:
-
你打印的classpath的sn-p在classpath上有
c:/myProjectDir,不是c:/myProjectDir/mysql-connector-java-5.0.8-bin.jar。您确定在类路径中有 jar,而不仅仅是目录吗? -
我可能只有目录...我没有专门的 jar。猜猜我认为它会被加载,因为它在那个目录中,但我需要明确地包含 jar 本身?
-
正确。我会将我的评论扩展为答案。