Een nieuwe Java plug-in voor de web browser

Al met de eerste versie van Java waren er applets. Applets zijn Java applicaties die in een web browser kunnen draaien. Hoewel dit in 1995 een veelbelovende technologie leek, zijn Java applets nooit zo populair geworden als bijvoorbeeld Flash applicaties. Enerzijds is het lastiger om een goede applet te schrijven (maar niet onmogelijk). Anderzijds had de Java browser plugin een aantal beperkingen. Na vele jaren heeft Sun een antwoord op beide problemen. Namelijk JavaFX en een nieuwe Java web browser plug-in.
JavaFX is een technologie om eenvoudig Rich Internet Applications (RIA’s) te kunnen ontwikkelen. Er is op dit moment preview release beschikbaar. Maar ik wil het nu hebben over de nieuwe Java web browser plug-in.

Sinds Java 6 update 10 (uitgekomen op 16 oktober 2008) is deze Java plug-in beschikbaar. De Java plug-in zorgt ervoor dat Java applicaties in een web browser kunnen draaien. Deze nieuwe plug-in is erg interessant omdat deze enkele problemen van de klassieke plug-in oplost.
Zo is het met de oude plugin bijvoorbeeld erg lastig om het geheugen gebruik te configureren. De zogenaamde “maximum heap size” was begrensd. En mocht het voorheen gebeuren dat een Java applicatie vastliep (bijvoorbeeld bij een out-of-memory exception), dan kon de browser ook vastlopen. De browser afsluiten en opnieuw opstarten was dan de enige mogelijkheid.
Met de Next-Generation Java plug-in voor web browsers heeft Sun deze problemen opgelost. Deze Next-Generation plug-in deelt niet langer het proces met de browser, maar draait in zijn eigen OS process space. Daardoor is het nu mogelijk om per Java applet opties, zogenaamde “JVM command-line arguments”, mee te geven voor onder andere geheugen gebruik, net zoals bij een stand-alone Java applicatie.

Een voorbeeld van een applet configuratie:

01: <APPLET> archive=”my_applet.jar” code=”MyApplet” width=”300” height=”300”>
02:   <PARAM name=”java_arguments” value=”-Xmx756m”>
03:   <PARAM name=”separate_jvm” value=”true”>
04: </APPLET>

Op regel 2 wordt de maximum heap size als JVM command-line argument meegegeven.
Op regel 3 wordt aangegeven dat de applet in een aparte Java Virtual Machine moet draaien. Er kunnen op één web pagina dus twee applets draaien in twee aparte JVM’s!

Installatie
Deze plug-in wordt automatisch geïnstalleerd tijdens de installatie van de JRE (Java 6U10) en werkt voor de volgende browsers:
Overzicht browser compatibaliteit

Minpunten
Java 6U10 is helaas nog niet beschikbaar voor Mac gebruikers. Verder heb ik de plug-in ook in Firefox 3 op Ubuntu geïnstalleerd en het blijkt dat de Java Console niet meer vanuit Firefox te openen is. Dit kan nog wel door in de Java Control Panel de optie “Show console” aan te zetten, maar dan is deze altijd zichtbaar.

Conclusie
Ik denk dat deze update een heel belangrijke is. Het nu is mogelijk om erg mooie, volwaardige Java applicaties in web browsers te laten draaien. Een mooi voorbeeld is de NASA World Wind applet.
Naast deze belangrijke wijziging zijn er meer dingen veranderd, onder andere JNLP ondersteuning, verbeterde JavaScript integratie, aanpasbaar laad scherm en “draggable” applets. Maar hier wil ik nu niet verder op in gaan. Voor meer informatie zie:


2 reacties »

  1. Ik zou het eigenlijk niet op prijs stellen als ik als nietsvermoedende surfer een applicatie open die even 756mb RAM gebruikt :)

    Martijn - november 2, 2008 0:03

  2. Misschien is 756mb wel een klein beetje overdreven. Maar voorheen was de default 64mb en dat was voor sommige applicaties echt niet genoeg.
    Die 64mb limiet was wel aan te passen (in de Java Control panel) maar niet direct in de HTML.

    Maar gelukkig draait het in een apart proces en crasht je browser niet meer ;)

    Remco - november 3, 2008 10:23

Reageer

RSS feed for comments on this post · TrackBack URI