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

原文地址:https://www.cnblogs.com/personnel/p/9159229.html

时间: 2024-11-09 00:52:29

java 8: ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver的相关文章

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法 (2011-05-05 16:08:05) 转载▼ 标签: 杂谈 分类: Oracle 出现这个问题,主要是驱动包没放到项目里,解决办法如下: 1.找到oracle里的jdbc\lib: 2.设置系统的 classpath 为 ojdbc14.jar.class12.jar: 3.把这两个jar拷贝到你的项目里的 \WEB-INF\lib 下: 4.

JAVA-系统-【3】-java应用连接oracle正常,但是网页却报错java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

这是因为jar包已经导入了项目的应用部分,网页的lib去没有导入. 导入以后还要刷新项目,最好重启tomcat,就解决了..

JDBC ODBC区别

一.JDBC(Java DataBase Connectivity standard) 1.JDBC,它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库. 2. 驱动程序(JDBC driver) 要通过JDBC来存取某一特定的数据库,必须有相应的JDBC driver,它往往是由生产数据库的厂家提供,是连接JDBC API与具体数据库之间的桥梁. 3.DBMS 4.三者之间的联系 JDBC API调用驱动程序来访问DBMS 二.ODBC(Open Database Conn

Java之十五 JDBC编程

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事.换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用.同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言"编写一次,处处运行"的优势. Java数

jdbc报java.lang.ClassNotFoundException: com.mysql.jdbc.Drive

今天从开始写了一个jdbc连接mysql驱动的程序 真的是各种报错啊 首先这是代码 package com.dmeck; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Jdbcbase { public static void mai

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

因为这个问题折腾了以上午,终于解决了,做下记录: 错误提示为:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver 在出这个问题前,首先确保连接的代码不存在语法上的错误,数据库的登录名以及密码都正确,好了,下面开始: 出了两个问题: 1.我原来的连接语句为 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");Co

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) at java

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法

今天用 myeclipse 写了个工程.结果最后报错,错误信息如下: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoade

java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.JPEGCodec

这两天都快被这个错误整疯了!!!最近在写java项目的时候需要用到 [java] view plain copy import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; 这两个类来把图片写入磁盘.注意:这两个类可是处在系统自带的jre里的rt.jar包里 [java] view plain copy FileOutputStream out = new FileOut