首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Eclipse 3.0 JRE 設定陷阱:Installed JREs 未勾選系統庫導致 JDBC 連線失敗

     編輯:Java 相關知識

Eclipse 中運行 Java 程式連接 MySQL 拋出 ClassNotFoundException: org.gjt.mm.mysql.Driver,但命令列正常。原因在 Window → Preferences → Java → Installed JREs → Edit 中 未取消勾選 "Use default system libraries" 並手動加入驅動 JAR。

問題現場

import java.sql.*;
public class MySQLTest {
    public static void main(String[] args) {
        String driver = "org.gjt.mm.mysql.Driver";
        String url = "jdbc:mysql://localhost/java_app?user=root&password=ss";
        try {
            Class.forName(driver).newInstance();
            Connection conn = DriverManager.getConnection(url);
            // ... 查詢邏輯
        } catch (Exception e) { e.printStackTrace(); }
    }
}

JDK lib 已放入 mysql-connector-java-3.1.1.jar,CLASSPATH 正確,命令列 java MySQLTest 成功,Eclipse Run 失敗。

根因分析

Eclipse 專案運行配置使用 Workspace JRE 定義,而非系統環境變數。若 Installed JREs 仍勾選 "Use default system libraries",Eclipse 會忽略該 JRE 的 lib/ext 手動添加,導致驅動類別不可見。

解決步驟

  1. Window → Preferences → Java → Installed JREs
  2. 選中當前 JRE → Edit
  3. 取消勾選 "Use default system libraries"
  4. Add External JARs → 選擇 mysql-connector-java-3.1.1.jar
  5. Finish → OK → Apply → 重啟 Eclipse

驗證

重新 Run 專案,連線成功,查詢結果正常輸出。

延伸建議

  • 專案層面:Java Build Path → Libraries → Add External JARs (僅影響該專案)
  • Maven/Gradle 專案:宣告 mysql:mysql-connector-java 依賴,IDE 自動同步,無需手動 JRE 設定
  • 團隊統一:將 JRE 定義匯出為 .prefs 或使用工作區機制共享

「環境在 IDE、不在機器」——理解 Eclipse JRE 隔離機制,能避免大量「命令列好、IDE 壞」的疑難雜症。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved