2015-09-19 66 views
0

我有以下代码:MySQL驱动程序类路径,但仍:抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

import java.io.IOException; 

public class DbTest { 
    public static void main(String[] args) { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
     } catch (Exception e) { 
      e.printStackTrace(System.out); 
     } 
    } 
} 

我下载独立于平台的.ZIP版本的MySQL连接器从以下位置:

http://dev.mysql.com/downloads/connector/j/ 

然后,解压缩下载的文件后,我把生成的文件夹在以下位置:

/java/mysql-connector-java-5.1.36 

我从它所用下面的命令目录内的编译我的代码:

javac DbTest.java -cp /java/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar 

最后,我跑我的代码用下面的命令:

java DbTest 

从完整的堆栈跟踪事件如下:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:191) 
    at DbTest.main(DbTest.java:6) 

在此先感谢您提供的任何帮助!

回答

1

当您运行应用程序时,您需要类路径上的JAR文件;例如

java -cp /longpath/mysql-connector-java-5.1.36-bin.jar:. pkg.pkg.DbTest 

(对于数据库驱动程序,如果您使用Class.forName(...)加载类,你并不需要在编译时JAR,但没有任何伤害,包括它的编译时类路径反正。)

+0

感谢您的回应!尽管如此,仍然没有运气。 “java -cp /longpath/file.jar DbTest”导致以下错误:“错误:无法找到或加载主类DbTest” –

+0

我是一般的Java开发新手,所以我确信这是全部沸腾的下降到一些根本的误解。我会考虑通过配置文件将它添加到我的运行时类路径中,并希望能够照顾它。但是,为什么命令行解决方案没有像你期望的那样行事? –

+0

请阅读。 http://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean/18093929#18093929。小心。有可能是你错误地指定了类名或类路径。 –

相关问题