Der HTML-Konverter für das Java-Plugin

Inhaltsverzeichnis


Problem: Zu alte Java-Versionen im Browser

Trifft ein Webbrowser auf das APPLET-Tag in einer HTML-Datei, startet er seine interne VM, um das Applet auszuführen.

Diese internen VMs unterstützen jedoch  nur Java 1.0, bestenfalls 1.1 und nicht die erweiterten grafischen und sonstigen Möglichkeiten, die Java 1.2 und spätere Versionen bieten.


Lösung: Das Plugin

Mit der Java-Laufzeitumgebung (kurz JRE) und dem Java Development Kit (JDK) werden auch sogenannte Plugins für Netscape Navigator und Internet Explorer mitgeliefert, um Java im Browser auszuführen. Plugins werden auch z. B. zur Darstellung von VRML oder Macromedia Flash-Animationen benötigt.

Damit der Browser nun statt seiner internen VM das Plugin benutzt, muß das APPLET-Tag durch ein anderes Tag ersetzt werden. Leider ist das für Netscape Navigator (EMBED-Tag) und Internet Explorer (OBJECT-Tag) verschieden. Damit die Seite für beide Browser funktioniert, müssen beide Tags kompliziert ineinander verschachtelt werden.

Damit das nicht per Hand gemacht werden muß, hat Sun den HTML-Konverter erfunden (für Eilige: Download des Konverters).


Plugin testen

Zunächst ein kleiner Test, ob ein funktionierendes Plugin vorhanden ist. Dazu dient hier ein kleines Demo-Applet mit herumspringenden Bällen. Man beachte den sauberen Rand der Kreise (sogenanntes Antialiasing) und daß sie leicht durchsichtig erscheinen, wenn sie sich überlappen.

Dieses Testapplet braucht JRE 1.3 oder höher, also ein funktionierendes Plugin. Rechts neben jeder Version ist der entscheidende HTML-Code angegeben.
 
BallTest_Original.html Originalversion nur mit Applet-Tag. Geeignet für den Appletviewer, Opera und Netscape ab Version 6.0 (diese Browser haben keine interne VM mehr und benutzen immer das Plugin, auch beim APPLET-Tag). Das PARAM-Tag wird von diesem Applet nicht gebraucht, dient nur zur Demonstration.
Der Konverter bietet nun vier Versionen an, in die der HTML-Code umgeschrieben werden kann: 
BallTest_Standard.html Standardversion für Internet Explorer und Netscape Navigator unter Windows und Solaris. 
BallTest_Extended.html Erweiterte Version für alle Browser und alle Betriebssysteme (benötigt Javascript) 
BallTest_IEonly.html Nur für Internet Explorer (Windows und Solaris) 
BallTest_NSonly.html Nur für Netscape Navigator unter Windows 

Bei wem keine Version funktioniert hat, sollte sich ein JRE oder JDK herunterladen oder versuchen, das vorhandene neu zu installieren.

In einem NT-CIP-Pool der Universität kann bei Netscape folgendes helfen (muß aber nicht):

  1. Alle Browserfenster schließen
  2. Auf dem Desktop das Icon für "JDK 1.3.1" suchen und doppelklicken
  3. Sobald die DOS-Box erscheint (das schwarze Fenster), diese wieder schließen
  4. Netscape wieder starten
Falls alles nichts half, zum Trost hier ein verkleinerter Screenshot:
 

Screenshot


Download des Konverters

Den Konverter kann man sich unter
http://java.sun.com/products/plugin/1.3/converter.html
herunterladen

Zuerst muß man dabei die Lizenz lesen und bestätigen, dann eine Download-Art auswählen. Bei Downloads ist allgemein zu beachten, daß FTP schneller ist als HTTP und daß man besser einen Server in Europa wählt, als den Sun-eigenen Server.

Das Programm ist knapp 150 KByte groß und als ZIP-Datei gepackt.


Installation des Konverters

Die heruntergeladene Datei htmlconv1_3.zip in ein geeignetes Unterverzeichnis verschieben, z. B. htmlconv.

Die Datei entpacken, z. B. mittels PowerZip, WinZip oder, falls kein solches Packprogramm verfügbar ist, eine DOS-Box öffnen, in das Verzeichnis mit der heruntergeladenen Datei wechseln und dort

jar -xf htmlconv1_3.zip
eingeben (Dazu muß natürlich ein JDK installiert sein). Es entstehen die Unterverzeichnisse converter und Meta-inf, letzteres kann man gefahrlos löschen.


Anwenden

Zum Starten in das erwähnte Verzeichnis converter und darin in das Verzeichnis classes wechseln. Ein Doppelklick auf HTMLConverter.bat kann (je nach Windowsversion) das Programm starten (kann einige Sekunden dauern). Bei wem das nicht funktioniert, der muß in einer DOS-Box in das Verzeichnis classes wechseln und dort
java -classpath . HTMLConverter
eingeben.
 

Tip 1: Wenn beim Scrollen in Dateidialogen die Datei- und Verzeichnisnamen "zerhäckselt" werden, sollte man das Programm beenden und nochmals mit

java -Dsun.java2d.noddraw=true -classpath . HTMLConverter
starten. Die Option -Dsun.java2d.noddraw=true ist allgemein nützlich, wenn bei einem Javaprogramm das Scrollen seltsame Bildeffekte hervorruft.

Tip 2: Bei Aufruf in der DOS-Box wird diese während des Programmlaufs gesperrt. Um das zu verhindern, einfach javaw statt java eingeben.
 

Das Programm sollte dann in jedem Fall etwa so aussehen:


 

Bedeutung der Eingabefelder

All Files in Folder Alle Dateien in diesem Verzeichnis werden konvertiert, deren Name ...
Matching File Names ... einem der angebenen Muster genügt. "*.html" meint z. B. alle Dateien, die auf ".html" enden.
Include Subfolders Auch die Ordner unter dem angegebenen Verzeichnis werden nach passenden Dateien durchsucht.

Statt des Eintragens von Datei oder Verzeichnisnamen kann man auch auf das "Browse" hinter dem jeweiligen Feld klicken und den Namen in einem Dateidialog auswählen. Bei der Auswahl von Verzeichnissen ist aber noch eine kleine Hürde zu nehmen.
Backup Files to Folder Zur Sicherheit werden die Originale in dieses Verzeichnis kopiert. Vorsicht: Der Verzeichnisname wird automatisch geändert, wenn man ein anderes Quellverzeichnis für die Konvertierung wählt. Also immer von oben nach unten ausfüllen! 
Template File Hier kann man angeben, in welche Version das HTML-File konvertiert werden soll (einfach, erweitert oder nur ein spezieller Browser, siehe oben). 
Convert... Draufdrücken und los geht's.

Im Menü Edit unter Options lassen sich weitere Optionen einstellen:

Die ersten vier Eingabezeilen sollte man nicht ändern. Sie geben an, wo der Browser das Plugin suchen soll, wenn er es nicht hat und welche Plugin-Version benötigt wird. Unter Generate Log File kann man bestimmen, ob und wo der Konverter ein Log File mit Übersichtsinformationen über die durchgeführten Konvertierungen ablegen soll.
 

Ist das Programm mit Konvertieren fertig, gibt es am Ende noch eine Zusammenfassung seiner Arbeit aus:


Mit der Kommandozeile verwenden

Wer es nicht grafisch haben möchte, sondern lieber per Hand auf der Kommandozeile arbeitet, hat auch diese Möglichkeit. Das Programm verwendet dabei folgende Parameter:
 
java -classpath . HTMLConverter [ filespecs ] [-simulate] [-options1 value1 [-option2 value2 [...]]]
filespecs Liste von Dateinamen, durch Leerzeichen getrennt. Das '*' ist erlaubt.  (z. B. *.html *.htm)
simulate Konvertierung nur simulieren.

Optionen
source  Pfad zu den HTML-Dateien (z. B. c:\htmldocs für Windows, /home/user1/htmldocs für Linux/Unix). Wird es nicht angegeben, wird das aktuelle Verzeichnis verwendet.
backup  Pfad zum Backupverzeichnis. Wird es nicht angegeben, wird an das source-Verzeichnis ein "_bak" angehängt.
subdirs Unterverzeichnisse von source verarbeiten? Erlaubt sind TRUE oder FALSE, Standard ist FALSE
template Name der template-Datei, also der Version, in die die HTML-Dateien konvertiert werden sollen. Standard: default.tpl (IE & Navigator für Windows & Solaris). Im Zweifelsfall nicht ändern.
log Pfad und Dateiname der log-Datei. Standard: convert.log
progress Fortschrittsanzeige zeigen? Erlaubt sind TRUE oder FALSE, Standard ist TRUE.