With InterClient 7.5.1 and 8.1.5, creating a new JDBC connection in Java 8 fails with
java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter
This class appears to be referenced or used by the JDBC InterClient library. The error does not occur with Java 7. Is there a way around this error?
This code reproduces the problem in 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); } } }
Output:
An exception was thrown in the main thread java.lang.NoClassDefFoundError: sun / io / ByteToCharConverter on interbase.interclient.Connection.connect (Unknown source) in interbase.interclient.Connection. (Unknown source) in interbase.interclient.Driver.connect (Unknown source) in java.sql.DriverManager.getConnection (DriverManager.java:664) in java.sql.DriverManager.getConnection (DriverManager.java:247) in com.example .so25365952.Main.main (Main.java:14) Raised: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter at java.net.URLClassLoader $ 1.run (URLClassLoader.javahaps72) in java.net.URLClassLoader $ 1. run (URLClassLoader.javahaps61) in java.security.AccessController.doPrivileged (native method) in java.net.URLClassLoader.findClass (URLClassLoader.javahaps60) in java.lang.ClassLoader.loadClass (ClassLoader.java:424) at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java.308) at java.lang.ClassLoader.loadClass (ClassLoader.javahaps57) ... 6 more
java java-8 jdbc interbase
mjn
source share