標籤:java 8 targe val 命令 ip) odbc 檔案夾 用戶端 影響
轉眼之間, 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
java 8: ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver