java 8: ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver


轉眼之間, java 11都快要推出了。

而我一直都在 java 7環境下寫代碼,真的不想升級,不想改變什么,可世界每天都在變化。

最近因為服務端需要SNI,而 java 7 只支持客戶端的SNI,只有升級到java 8才能使用服務端的 SNI,我又怕升級到 java 8后,原來的代碼受影響,就找了台平時不用的電腦安裝了 java 8。

運行了一下代碼,果然遇到了問題:ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver

網上搜索了一下相關資料,說是 JDK8刪除了JDBC-ODBC橋(從Java 8開始,JDBC-ODBC Bridge將不再包含在JDK中。),然后找到一個解決方案: 從 java 7 提取  jdbc 

1. 下載JDK 7或JRE 7。

2. 轉到JRE \ lib文件夾並找到rt.jar

3. 將其解壓縮(如果您安裝了WinRAR或7zip),或者您可以將其重命名為rt.zip並將其解壓縮。

4 復制sun \ jdbc和sun \ security \ action文件夾,保留文件夾結構。即你應該有如下的文件夾結構:

  Sun --> Security --> Action

  Sun --> JDBC

5. 打開一個CMD窗口。轉到Sun文件夾的父文件夾。運行命令:jar -cvf jdbc.jar sun

6. 上述命令將創建一個名為jdbc.jar的文件

7. 將JDBC.jar復制到您的JDK8或JRE8 lib文件夾。如果這不起作用,請嘗試使用該lib\ext文件夾。

8. 將jdbcodbc.dll從JRE 7安裝的JRE \ bin復制到JRE 8安裝的JRE \ bin。

9. 重新啟動您的JVM。

 

來源: 

https://stackoverflow.com/questions/14229072/removal-of-jdbc-odbc-bridge-in-java-8

http://bigfatball.blogspot.com/2016/03/how-to-enable-jdbc-odbc-bridge-for-jdk-8.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM