Probleme mit JVM für Windows

Microsoft beklagt sich über die neueste Java-Version

28.02.1997

Kernpunkt der Kritik ist eine Veränderung, die Suns Softwaretochter an der Java Virtual Machine (JVM) vorgenommen hat. Java-Klassenbibliotheken setzen sich grundsätzlich aus zwei Teilen zusammen: Der eine besteht aus reinem Java-Sourcecode und läuft in der JVM ab, der andere Teil stellt die Interfaces für das jeweilige Betriebssystem, etwa Windows, zur Verfügung.

Charles Fitzgerald, Sprecher des Java-Teams bei Microsoft, wirft Sunsoft nun vor, die Firma habe das dem Betriebssystem-Interface zugrundeliegende Design geändert und dabei das "Java Native Interface" (JNI) eingeführt. Dieses sei nicht kompatibel zu dem bisherigen "Native Method Interface" (NMI) aus dem früheren JDK 1.0. "Sunsoft verstößt gegen eine sehr spezifische Vertragsverpflichtung", sagte Fitzgerald, "ich kann rechtliche Schritte nicht ausschließen." Microsoft hatte bei der Entwicklung seiner eigenen JVM ein eigenes, erweitertes Interface auf Basis des NMI entwickelt, das sogenannte "Raw Native Interface" (RNI). Dieses funktioniert mit der neuen Spezifikation nicht mehr.

Javasoft hält Vorwürfe für überzogen

Lisa Poulson, Sprecherin von Javasoft, hält die Vorwürfe der Gates-Company für stark übertrieben: "Es geht nicht um Kompatibilität - die Sache ist der größte Sturm im Wasserglas, den es je gab." Microsoft solle keineswegs gezwungen werden, sein RNI durch das neue JNI zu ersetzen. "Microsoft denkt anscheinend, wir wollten sie zwingen, RNI zu ersetzen. Dem ist nicht so", so Poulson. "Wir möchten nur, daß sie beide Varianten unterstützen." Microsoft besitze nicht die alleinigen Rechte an der Referenz-Implementierung für Windows und stehe mit seinen Protesten allein auf weiter Flur. "Finden Sie es nicht auch bemerkenswert, daß Microsoft sich als einziger Lizenznehmer über diese Sache aufregt?" fragte Poulson. Javasoft hatte alle Lizenznehmer seiner Technologie - darunter Microsoft, IBM, Hewlett-Packard und Apple - aufgefordert, ihre Umsetzungen beizubehalten und lediglich das neue Interface JNI hinzuzufügen.