mjn*_*mjn 8 java interbase jdbc java-8
使用InterClient 7.5.1和8.1.5,在Java 8中创建新的JDBC连接失败
java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter
Run Code Online (Sandbox Code Playgroud)
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
线程"main"中的异常java.lang.NoClassDefFoundError:interbase.interclient.Connection.connect中的interbase.interclient.Connection.connect(未知源)中的sun/io/ByteToCharConverter.(interknown.interclient.Driver.connect中的未知源)(未知来源)来自java.sql.DriverManager.getConnection(DriverManager.java:664)的java.sql.DriverManager.getConnection(DriverManager.java:247)at com.example.so25365952.Main.main(Main.java:14) by:java.lang.ClassNotFoundException:位于java.net.URLClassLoader $ 1.run(URLClassLoader.java:372)的sun.io.ByteToCharConverter,位于java.security的java.net.URLClassLoader $ 1.run(URLClassLoader.java:361).位于java..L.Tisc.Launcher的java.lang.ClassLoader.loadClass(ClassLoader.java:424)java.net.URLClassLoader.findClass(URLClassLoader.java:360)的AccessController.doPrivileged(Native Method)$ AppClassLoader.loadClass(Launcher. java:308)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 6更多