轉眼之間, 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