Hallo,
setzt noch jemand InterBase 7.5.1 ein und greift darauf auch über den InterClient JDBC Treiber zu?
Mit Java 8 scheint der InterClient 7.5.1 Treiber nicht mehr kompatibel zu sein, beim Verbindungsversuch erfolgt eine
Exception:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter
at interbase.interclient.Connection.connect(Unknown Source)
at interbase.interclient.Connection.<init>(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
Die vermisste Klasse
sun/io/ByteToCharConverter gehört zu den "interne" Sun-Klassen. In Java 7 ar sie als deprecated gekennzeichnet, in Java 8 nun wurde sie entfernt. (Eine interne Klasse zu verwenden ist schlechter Stil, da sie nicht Teil der offiziellen Java
API sind, und die Anwendung an eine spezifische JRE binden, in diesem Fall die von Sun).
Da Oracle den Java 7 Support im April einstellen wird, wird eine Entscheidung notwendig sein:
- den InterBase 7.5.1 Server auf XE umstellen?
- den Datenbankzugriff von JDBC auf etwas anderes umstellen?
Die erste Option würde sehr, sehr teuer werden. Die zweite würde den Einsatz einer anderen Zugriffsmethode (
ODBC über Java?) erfordern und auch einigen Aufwand bedeuten. Daher wären praktikable Ideen willkommen