Betten Sie eine JavaFX-Anwendung in eine HTML-Webseite ein

8

Ich möchte eine oder mehrere JavaFX-Anwendungen auf einer Webseite einbetten. Wie machst du das?

Es gibt einige Kleinigkeiten auf der Oracle-Website, aber es gibt kein vollständiges Beispiel.

Es gibt das Deployment im Browser Tutorial, das Packaging Basics Tutorial, etc. Es gibt Hinweise auf Ant-Aufgaben und was nicht.

Also gab es nach dem Lesen noch viele Fragen. Wie brauche ich Ant? Muss ich ein Applet erstellen? usw.

Alles, was ich sehen möchte, ist ein minimales und vollständiges "Hallo Welt" -Beispiel, um zu sehen, wie es funktioniert. Auch hier auf StackOverflow sind nur Bits und Stücke zu Antworten der gleichen Frage, so dass das nicht wirklich hilft.

Ich hatte diese Frage gestern auf, löschte sie aber und dachte, ich würde es selbst versuchen. Es stellte sich heraus, dass es nur leicht ist, wenn Sie die Fallstricke kennen. Da dies hier bereits gestellt wurde, dachte ich, ich würde mein minimales und vollständiges Beispiel in der Antwort teilen.

Unter Verwendung der JavaFX-Beispiele dauerte es nur ein paar Minuten, um den Code für diese HTML-Seite zu erstellen:

    
Roland 15.01.2015, 06:42
quelle

1 Antwort

13

Erstellen Sie ein JavaFX-Anwendungsprojekt, z. G. "FxInHtml".

Erstellen Sie Ihre JavaFX-Anwendung, z. g.:

%Vor%

in FxInHtml / src / Anwendung

Jetzt können Sie mit dem javafx-Packager-Tool den Rest erledigen. Sie finden es im Ordner bin Ihrer JDK-Installation. Beachten Sie, dass es in Java 7 javafxpackager und in Java 8 javapackager heißt. Nehmen wir an, wir verwenden Java 8 und Ihre Entwicklungsumgebung kompiliert die Klassendateien in den Ordner bin.

Öffnen Sie eine Befehlsshell und navigieren Sie zum Projektordner FxInHtml.

Erstellen Sie ein Paket mit

%Vor%

Jetzt haben Sie eine ausführbare Datei myapp.jar im kompilierten Ordner.

Erstellen Sie die jnlp- und html-Dateien mit

%Vor%

Es ist wichtig zu beachten, dass "srcdir" niemals ein Verzeichnis mit Java-Klassen ist und es ist je nach javapackager-Anweisung anders. Das Ausgabeverzeichnis des einen Java-Packager-Aufrufs ist das Quellverzeichnis des anderen.

Nachdem Sie den Befehl aufgerufen haben, haben Sie einen neuen Ordner "deployed", der alle benötigten Dateien enthält: myapp.jar, outfile.html, outfile.jnlp.

Wenn Sie die Datei "outfile.html" in einem Browser öffnen, können Sie bereits die eingebettete JavaFX-Anwendung sehen. Höchstwahrscheinlich müssen Sie die Sicherheitseinstellungen ändern, z. G. erlauben Sie, dass "file: /" -Anwendungen ausgeführt werden. Aber bedenken Sie, dass Sie "file: /" nach der Entwicklung wieder entfernen, es ist ein Sicherheitsrisiko. Oder Sie können die JAR-Dateien signieren, die Sie am Ende sowieso machen müssen. Sie können javapacker auch für das Signieren verwenden.

Das ist es für das minimale und vollständige Beispiel.

Aber schauen wir uns die generierten Dateien an. Die generierte outfile.html sieht so aus:

%Vor%

Um verschiedene JavaFX-Anwendungen einzubetten, müssen Sie diesen Teil ändern / duplizieren:

%Vor%

und verweisen Sie die Anwendung in Ihrem HTML mit dem Platzhalter mit diesem div-Tag

%Vor%

Wenn Sie zB ein zusätzliches barchart.jnlp haben, fügen Sie es wie folgt hinzu (Ich habe den Webstart-Teil entfernt, da wir möchten, dass unsere App eingebettet wird):

%Vor%     
Roland 15.01.2015, 07:06
quelle

Tags und Links