2011-05-28 137 views
5

我一直在嘗試用下面的代碼加載JDBC的MySQL連接器:我無法加載的JDBC驅動程序的MySQL

import java.sql.*; 

public class dbTest{ 
    public static void main(String[] args) throws SQLException, ClassNotFoundException 
    { 
    Class.forName("com.mysql.jdbc.Driver"); 
    } 
} 

而且我不斷收到一類未發現異常:

java.lang.ClassNotFoundException 
    at edu.rice.cs.plt.reflect.PathClassLoader.findClass(PathClassLoader.java:148) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at dbTest.main(dbTest.java:6) 

我已將路徑添加到驅動程序(mysql-connector-java-3.1.14-bin.jar)到我的類路徑中,並進行了雙重檢查以確保它是正確的。我還根據我從這篇文章中讀到的內容,將jar的副本添加到了我的Java安裝的ext文件夾中:http://www.developer.com/java/data/jdbc-and-mysql-installation-and-preparation-of-mysql.html

我還搜索了其他已發生此問題的人的帖子,但到目前爲止所有回覆都有一直在說要將連接器jar添加到類路徑中,我已經這樣做了。

任何幫助將不勝感激。

回答

9

我已經加入了驅動程序路徑 (使用mysql-connector-java的3.1.14-bin.jar) 到我的類路徑

的異常告訴你,你沒有做它正確。

你是如何設置CLASSPATH的?如果它是一個環境變量,那麼您將會了解IDE和應用程序服務器忽略它。 請勿使用它。

不要把它放在Java JDK的/ ext目錄中。

做正確的方式取決於你如何使用它:

  1. 如果你像Eclipse或的IntelliJ一個IDE內運行,您必須將JAR添加到庫中。
  2. 如果您正在命令shell中運行,請在編譯時使用-p選項來運行javac.exe,運行時請使用java.exe。
  3. 如果您在Web應用程序中使用它,您可以先將它放入WAR文件的WEB-INF/lib目錄中。如果您使用的是Tomcat 6等servlet/JSP引擎,請將其放入Tomcat/lib目錄中。
+0

謝謝你的回答,我確實設置了環境CLASSPATH變量。我正在使用Netbeans,並且像你所說的那樣將它添加到庫中。非常感謝你。 – kevinAlbs 2011-05-28 23:33:34

1

java中有兩個類路徑。建立路徑和運行路徑。編譯.java文件到.class文件時使用編譯路徑。在像C這樣的語言中,當鏈接器運行在一組目標文件上時,鏈接器階段會填充所有缺失的符號。這就是爲什麼.exe(Windows)或其他本地二進制文件(Linux)沒有運行路徑。 Java稍有不同,因爲編譯後的.class定義會在需要時由jvm加載。

這是什麼網是你必須提供一個運行時類路徑到jvm。在命令行使用java.exe,默認情況下會搜索幾個地方,包括$ CLASSPATH,當前目錄/ lib以及提供給-cp選項的任何地方。

IDEs與命令行有所不同,因爲它們試圖阻止您運行java.exe並提供所有.class文件所在的位置(這在大型項目中會很繁瑣)。

大多數IDE都有某種「運行配置」選項卡,允許您在運行應用程序時指定將使用的類的某些庫或位置。以下是如何在eclipse,netbeans和intellij中設置運行路徑。

http://javahowto.blogspot.com/2006/06/set-classpath-in-eclipse-and-netbeans.html

http://www.jetbrains.com/idea/webhelp/run-debug-configuration-application.html

9

在的IntelliJ我這是怎麼解決這個問題:

文件>項目結構>庫> +

找到JDBC連接器。對我來說它是在C:\ Users \ MyName.InteliJIdea13 \ config \ jdbc-drivers

相關問題