2015-09-19 73 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。小心。有可能是你錯誤地指定了類名或類路徑。 –

相關問題