java - NoClassDefFoundError sun/io/ByteToCharConverter 与 InterBase JDBC 驱动程序

标签 java jdbc java-8 interbase

使用 InterClient 7.5.1 和 8.1.5,在 Java 8 中创建新的 JDBC 连接失败

java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter

此类似乎被 InterClient JDBC 库引用或使用。 Java 7 不会出现该错误。有没有办法解决此错误?


此代码重现了 Java 8 上的问题:

package com.example.so25365952;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Main {
    interbase.interclient.Connection conn; 

    public static void main(String[] args) {
        try {
            Class.forName("interbase.interclient.Driver");           
            DriverManager.getConnection("jdbc:interbase://localhost/data/mydb.gdb", "sysdba", "password123");           
        } catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

输出:

Exception in thread "main" java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter at interbase.interclient.Connection.connect(Unknown Source) at interbase.interclient.Connection.(Unknown Source) at interbase.interclient.Driver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at com.example.so25365952.Main.main(Main.java:14) Caused by: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter at java.net.URLClassLoader$1.run(URLClassLoader.java:372) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:360) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 6 more

最佳答案

使用最新版本的db2jcc4.jar。如果您改变主意使用 Java 8,则需要使用它。

我遇到了类似的问题,此更改帮助我修复了错误。

关于java - NoClassDefFoundError sun/io/ByteToCharConverter 与 InterBase JDBC 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34068357/

相关文章:

java - 当发生 SQLException 时如何调用自定义异常?

java - JDBC:查询结果并将批处理添加到另一个表中

java - JDK 8 中带有压缩参数的 GC 日志轮换

java - 谁能推荐一个高效的 Java UDP 消息传递框架?

java - Flink 1.2.0 jdbc 从Mysql读取流数据

Java 8 流 - 在平面图之后引用原始流对象

java - 如何使用Junit测试对象是否被修改?

java - 为什么 Java 14 不是 LTS?

java - Spring boot - @Service类调用另一个@Service类

Java字符串停止转义字符 Action