JAVA Programm in Website einbinden

Max Jostes

Mitglied
Zahlreiche Besucher einer Website haben seit Jahr und Tag mit den bekannten Browsern ein in eine Website eingebundenes JAVA-Programm uneingeschraenkt verwendet. Seit diese Webbrowser JAVA nicht mehr unterstuetzten, ist das bedauerlicherweise nicht mehr moeglich.

Weblink: ( https://www.nlp.eu/exp_com/calibrate/calibrate.shtml )

Der Programmierer dieses JAVA-Programms ist nicht mehr erreichbar, die dort angegebene Website steht zum Verkauf.

Hat jemand eine Idee, wie dieses Programm trotz der fehlenden Unterstuetzung durch die Webbrowser weiterhin genutzt werden kann?
 
Java Applets sind schon lange deprecated. Man kann ein Applet aber natürlich auch direkt mit dem appletviewer von Java 8 verwenden. Also z.B. mit Hilfe des Adopt OpenJDK 8 starten.

Wenn das Applet da zukünftig nicht gehostet wird, dann müssten Du schauen, ob Du davon eine Kopie bekommen kannst. Dann kannst Du es auch lokal nutzen.
 
Java Applets sind schon lange deprecated. Man kann ein Applet aber natürlich auch direkt mit dem appletviewer von Java 8 verwenden. Also z.B. mit Hilfe des Adopt OpenJDK 8 starten.
So ist es:
Bildschirmfoto von »2021-07-18 13:19:26«.png

Hier braucht man allerdings eine Policy:
[code title=applet.policy]
grant {
permission java.security.AllPermission;
};
[/code]

Dann kann man den Spaß laufen lassen mit
Code:
appletviewer -J-Djava.security.policy=applet.policy https://www.nlp.eu/exp_com/calibrate/calibrate.shtml
 
Java Applets sind schon lange deprecated. Man kann ein Applet aber natürlich auch direkt mit dem appletviewer von Java 8 verwenden. Also z.B. mit Hilfe des Adopt OpenJDK 8 starten.

Wenn das Applet da zukünftig nicht gehostet wird, dann müssten Du schauen, ob Du davon eine Kopie bekommen kannst. Dann kannst Du es auch lokal nutzen.
Danke fuer die Hinweise. Die 3 Applets sind vorhanden. Es geht darum, dass die Besucher der Website das oben bei mihe7 (Merci dafuer!) sichtbare Programm nutzen koennen. Wie genau muss die Website veraendert werden, damit das moeglich ist? Bin leider in dieser Hinsicht voellig ratlos! Oder ist das mit den Webbrowsern so ueberhaupt nicht mehr moeglich?
 
Ich sehe da jetzt erst einmal keinen einfachen Weg, es als Web Applikation laufen zu lassen.

Workarounds, die ich sehe, sind halt:
- Man kann was zusammen packen, das die Leute dann herunter laden können um es zu entpacken und dann zu starten (Also zur Not einfache in OpenJDK mit den Applet Dateien und einem entsprechenden Startscript. Das könnte schon gehen). Wenn die Webseite zum Verkauft steht, dann wäre so eine offline Lösung evtl. mit am Einfachsten.
- Wenn man auch die Sourcen haben sollte (oder wenn das Applet nicht zu umfangreich ist, reicht ggf. auch das, was ein Decompiler liefert), dann könnte man schauen, ob man es in eine Desktop Anwendung umwandeln kann. Das läuft dann auch auf eine Offline Lösung hinaus, aber das Ergebnis wäre vermutlich kleiner und man hätte auch eine Chance auf ein einzelnes, kleineres Executable.

Rein um es nicht verschwiegen zu haben nenne ich noch eine technische Lösung / Idee. Die ist aber für rein private Umfelder unbrauchbar (meiner Meinung nach).
Prinzipiell gibt es auch noch eine Technology "Web Start", so dass über eine Webseite eine Desktop Applikation geladen und gestartet wird (incl. lokalem Cache, Check beim Start ob es eine neue Version gibt u.s.w.). Das ist aber auch alles deprecated aber es gibt eine Open Source Variante:
OpenWebStart,

Das ist aber aus meiner Sicht keine Technologie, die ich empfehlen würde. Das ist mehr etwas für Firmen, die irgend eine Software nutzen, die das eben braucht und die dann halt die notwendigen Grundlagen auf allen Firmenrechnern entsprechend vorhält. Das ist also wirklich nur interessant, wenn alle Zielsysteme mehr oder weniger unter Deiner Kontrolle sind und Du da sowas wie JNLP installieren und konfigurieren kannst/willst.

Das einfach einmal die Optionen, die ich da so sehe...
 
Oder ist das mit den Webbrowsern so ueberhaupt nicht mehr moeglich?
Mit einem alten Java und einem alten Browser funktioniert das natürlich nach wie vor 🙂 Aber das kann ja nicht Sinn der Übung sein.

Das Problem ist einerseits, dass Oracle mit Java 9 das Browser-Plugin eingestellt hat und andererseits, dass die Browser die NPAPI, auf dem das Plugin basiert, ebenfalls abgekündigt und teilweise auch gekillt haben.

Für den Browser bilden heute HTML5/JavaScript den Standard, um solche Dinge zu realisieren (oder auch WebAssembly, das ist noch relativ jung).

Was macht das Ding eigentlich?
 
Mit einem alten Java und einem alten Browser funktioniert das natürlich nach wie vor 🙂 Aber das kann ja nicht Sinn der Übung sein.

Das Problem ist einerseits, dass Oracle mit Java 9 das Browser-Plugin eingestellt hat und andererseits, dass die Browser die NPAPI, auf dem das Plugin basiert, ebenfalls abgekündigt und teilweise auch gekillt haben.

Für den Browser bilden heute HTML5/JavaScript den Standard, um solche Dinge zu realisieren (oder auch WebAssembly, das ist noch relativ jung).

Was macht das Ding eigentlich?
Nochmals Dank fuer die Hinweise. Das Programm erzeugt beobachtbare Augenbewegungen (Oben, Mitte, Unten, jeweils Links, Rechts), wenn Menschen etwa innerlich nach der Antwort zu einer Frage suchen, und es zeigt hinterher eine Aufloesung dazu, also die innere Suchstrategie.

Ich habe bereits versucht, das Programm mit alten Browsern zu nutzen, bin allerdings nur in zwei Faellen (Internet Explorer, Opera) nicht weiter als bis zu einem Hinweis auf das fehlende Plugin gekommen. Und selbst wenn das gelungen waere, waere ich keinen Schritt weiter.

Gibt es eine Moeglichkeit, diese drei JAVA Applets, fuer die auch der Source Code vorhanden ist (Decompiled by Procyon v0.5.36), in JavaScript, also den von dir erwaehnten Standard zu konvertieren?
 
Gibt es eine Moeglichkeit, diese drei JAVA Applets, fuer die auch der Source Code vorhanden ist (Decompiled by Procyon v0.5.36), in JavaScript, also den von dir erwaehnten Standard zu konvertieren?
Manuell, sicher. Automatisch: keine Ahnung. Gibt wohl ein paar Tools (GWT, JSweet, j2js, Java2Script), wie mir Google eben verraten hat, aber inwiefern das funktioniert, müsstest Du mal ausprobieren. Wenn Du aber den Quellcode hast, dann könnte es sein, dass Du mit der manuellen Methode besser dran bist.
 
Meine Sicht auf die genannten Tools:
Den genannten Tools fehlt aus meiner Sicht die Abbildung der AWT Componenten. Daher nützt ein übersetzen hin zu JavaScript nicht viel.

SwingJS wollte in dieser Richtung einiges machen. Aber das Projekt scheint 4 Jahre ohne Bewegung zu sein und sagt als Status: "THIS PROJECT IS NOT IN AN EXECUTABLE STATE YET"

Und etwas anderes, das dies versucht hat so abzubilden, ist mir auch nicht bekannt.

Daher wäre das "neu machen" in html/js die Option, die ich gehen würde (so andere Workarounds zur Weiternutzung - eben nicht als Web Applikation - nichts sind). Das Applet ist von der Komplexität her auch nicht besonders groß. 3 Klassen (Calibrate, Face und Eye) die alle nicht groß sind und auch nichts so komplexes machen.
 
Ich weiß nicht ob das wirklich hilfreich ist. Ich habe mal gesehen, dass in eine Webseite ein VNC-Viewer eingebettet war. Auf einem Server wurde eine VM gestartet und über den VNC-Viewer konnte das dort laufende Programm bedient werden. Die Verbindung hat nicht lange gedauert. Allerdings war verständlicherweise die Anzahl der VM's limitiert. So konnte es passieren, dass man nicht augenblicklich eine VM bekommen hat. Auf diese Art könnte man auch Applets per Appletviewer bereitstellen.
 
@Oneixee5, coole Idee aber für ein solches Mini-Applet der reinste Overkill. Besser gleich umschreiben, das sollte nicht so schwer sein und dann hat man seine Ruhe 🙂
Das möchte ich nur einmal kurz bestätigen. Also umschreiben zu einer Swing Applikation ist extrem einfach (ist halt auch alles AWT) und ich habe es einmal schnell ausprobiert.
Der Code ist aber wirklich alt - paar Dinge, die benutzt wurden, sind auf deprecated gesetzt worden mit Java 1.1. Also selbst da sollte man noch paar Refactorings machen (Es wurde einfach mouseDown und action von Component überschrieben). Haupt Änderungen sind:
JFrame statt Applet, main Hinzufügen, die das Fenster erzeugt, init Aufruft und es sichtbar macht. Laden der 3 Bilder anpassen.

@Max Jostes Solltest Du an den Änderungen an Calibrate.java Interesse haben, dann kann ich es Dir auch noch zukommen lassen. Copyright ist nicht geklärt, daher werde ich es nicht veröffentlichen.
 
dann hat er es aber doch immer noch nicht auf seiner Webseite oder verstehe ich da was falsch?
Natürlich nicht - da geht es wirklich nur um eine Offline Desktop Alternative wie ich es in meiner Antwort #5 vorgeschlagen habe. Einfach konvertieren geht so einfach halt eben nicht (aus meiner Sicht aber ich mag mich irren. Würde mich für den TE freuen).

Wenn man eine Lösung wie von @Oneixee5 bauen wollte, dann wäre das aber auch eine Möglichkeit (statt VNC evtl. eine Software nehmen wie TS+, die dann eine App per Web bereitstellen kann...)
 
Ich meinte eigentlich nach JavaScript, nicht nach Swing 🙂 Das dürfte auch kein wahnsinniger Akt sein.
Ja, mir was das schon etwas klar - nur da sehe ich eben keinen wirklich gangbaren Weg (Wobei da die drei Klassen (mit <200, <100 und <50 Zeilen) nicht wirklich eine Herausforderung wären, die Funktionalität neu zu bauen.

Java -> JS ist gut möglich. Aber die verwendeten Komponenten muss es da aber leider geben. Da wird man also Hand anlegen müssen (Auch kein Hexenwerk - die Controls gibt es und Layout dürfte keine große Herausforderung sein.) Das ist aber nicht meine Baustelle - JavaScript und html packe ich nur an, wenn es sein muss ... 😛
 
@kneitzel, danke fuer das Angebot #12. Das ziemlich angestaubte Programm existierte schon deutlich vor 2000. Auf meinem Debian ist es nach einigen Umzuegen mit 08.07.1998 gespeichert. Mein Fazit aus den zahlreichen Beitraegen ist, dass es in JavaScript umgeschrieben werden sollte, um das Browser-Problem mit JAVA zu loesen. Also falls nicht jemand noch eine geniale Idee hat, koennte hier somit ein Punkt gesetzt werden.

Ein aus meiner Sicht wirklich erfreulicher Nachtrag zu den Beitraegen und fuer den Programmierer dieses in die Jahre gekommenen JAVA Programms ist, dass es tatsaechlich mit der Erweiterung "CheerpJ Applet Runner" immer noch einwandfrei funktioniert und nutzbar ist.

( Weblink: https://leaningtech.com/run-java-applets-without-installing-java/ )

Getestet habe ich das Programm mit Chromium (Ubuntu Server), zudem mit Google Chrome und Microsoft Edge (Windows 10 Home). Also alles prima. Aber eben, wie oben bereits erwaehnt, leider noch nicht die Loesung!
 

Neue Themen


Zurück
Oben