Java im Web

JavaScript-Bibliothek bringt Java ohne Applets in den Browser

Melanie Feldmann

© Shutterstock / Khunpat17

Nachdem Oracle im Januar (endlich) das Java-Browser-Plug-in beerdigt hat, sind Entwickler auf der Suche nach neuen Wegen für Java in den Browser. Eine Möglichkeit ist JavaPoly.js. Die Library agiert als Polyfill und integriert so die Java Virtual Machine in den Browser.

JavaPoly ermöglicht es Entwicklern, Java-Code in den Browser zu importieren und direkt aus JavaScript heraus aufzurufen. Das soll auch funktionieren, wenn auf dem Rechner des Endanwenders gar kein Java installiert ist. Java soll so zu einem „First Class Citizen“ werden, der in den Script Tags des Browsers läuft und direkt mit dem DOM interagiert. In Theorie wäre es so auch möglich, andere JVM-Sprachen in den Browser zu bringen, wie Groovy oder Scala. Zurzeit arbeiten die Entwickler an einem JVM-Plug-in für Chrome und Firefox. Das Langzeitziel ist, das API zu standardisieren und in den Kern-Code der Browser zu integrieren. Die Integration in den Quellcode der Browser selbst ist jedoch nicht zwingend nötig, damit JavaPoly in den verschiedenen Browsern funktioniert. Hauptargument dafür ist jedoch, dass Browser mit nativer Unterstützung deutlich schneller seien als solche ohne. Der Umweg über die JavaScript Virtual Machine kostet Zeit.

Von Java nach JavaScript

Die Brücke zwischen Java- und JavaScript-Code schlagen die Entwickler mit ein paar Tipps und Tricks. Java unterstützt beispielsweise 64-bit lange Integers, JavaScript nicht. Solch lange Integers von Java nach JavaScript zu übergeben führt zu einer Exception. Ein kleiner Workaround hilft: Im Java-Code alle langen Integers in ein Primitiv zu ändern, das JavaScript versteht. Möglich ist dies mit Long.doubleValue() für eine numerische Annäherung oder Long.toString() für einen präziseren String. JavaPoly versucht außerdem Java-Klassen mit ihren vollqualifizierten Namen zu nutzen. Dazu nutzt es Proxy-Objekte, die aber in JavaScript noch so neu sind, dass sie noch nicht von allen Browsern unterstützt werden. Außerdem kann JavaPoly nicht alle Pakete zur Verfügung stellen, bevor ihr Inhalt  in die JVM geladen wurde. Die sichere Variante ist es deswegen auf Klassen über 'Java.type(com.deinpaket.deineKlasse')' zuzugreifen. Die Details zu Implementierung haben die Entwickler hier zusammengefasst.

JavaPoly ist Open Source und befindet sich zurzeit noch in einer frühen Betaphase – Tester und Mitentwickler sind deswegen herzlich willkommen. Da das Tool auf der Doppio JVM aufbaut, ist Grundlagenwissen dazu gefordert. Der Sourcecode liegt hier.

Aufmacherbild: Working time von Shutterstock / Urheberrecht: Khunpat17

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: