Ist es möglich, JavaFX-Anwendungen unter iOS, Android oder Windows Phone 8 auszuführen?

105

Kann man eine ganze Anwendung mit JavaFX entwickeln und auf iOS, Android oder Windows Phone 8 ausführen, ohne plattformspezifischen Code zu schreiben?

mmm
quelle
1
Das glaube ich nicht. Schauen Sie hier: news.kynosarges.org/2013/10/10/javafx-on-ios-android
Viktor K.
1
Oracle entwickelt ADF Mobile. Schau dir das an. Es unterstützt iOS und Android.
Alexander Kirov
Suchen Sie im Internet nach dem Wort javafxports. Die meisten Javafx-Funktionen funktionieren unter Windows / Android / iOS einwandfrei. In diesem Moment gibt es einige Funktionen, die auf Android noch nicht funktionieren, wie zum Beispiel: Task.cancel () oder internationale Unicode-Zeichen oder den FX Media Player usw.
Amin

Antworten:

61

Hintergrund

Die Antwort von Invariant ist eine gute Quelle dafür, wie alles gestartet wurde und wie der Status von JavaFX auf Embedded und Mobile Anfang 2014 war. Seitdem hat sich jedoch viel geändert, und die Benutzer, die über diesen Thread stolpern, erhalten keine aktualisierten Informationen.

Die meisten meiner Punkte beziehen sich auf die Antwort von Invariant, daher würde ich vorschlagen, sie zuerst durchzugehen.

Aktueller Status von JavaFX auf Mobile / Embedded

Einige schlechte Nachrichten zuerst:

Nun einige gute Neuigkeiten:

  • JavaFX läuft weiterhin auf Android, iOS und den meisten eingebetteten Geräten
  • Das JavaFXPorts SDK für Android, iOS und eingebettete Geräte kann hier heruntergeladen werden
  • Das JavaFXPorts-Projekt ist immer noch erfolgreich und es ist einfacher als je zuvor, JavaFX auf Mobilgeräten auszuführen. Dies alles dank der IDE-Plugins , die auf diesen SDKs basieren und Ihnen den Einstieg in wenigen Minuten ermöglichen, ohne dass Sie mühsam SDK installieren müssen
  • JavaFX 3D wird jetzt auf Mobilgeräten unterstützt
  • GluonVM ersetzt RoboVM und ermöglicht Java 9- Unterstützung für mobile Entwickler. Ja, du hast es richtig gehört.
  • Mobile Project wurde von Oracle gestartet, um JDK auf allen wichtigen mobilen Plattformen zu unterstützen. Es sollte auch JavaFX unterstützen;)

Wie man anfängt

Wenn Sie kein Heimwerker sind, würde ich empfehlen, das IDE-Plugin auf Ihrer Lieblings-IDE zu installieren und loszulegen.

Die meisten Dokumentationen zu den ersten Schritten finden Sie hier und einige Beispiele finden Sie hier .

ItachiUchiha
quelle
Ich bin mir nicht sicher, wann Sie JavaFX das letzte Mal verwendet haben, aber in JavaFX 8 wurden viele Verbesserungen vorgenommen. Vieles hat sich auch von den ursprünglichen JavaFXPorts zu Gluon Mobile geändert.
ItachiUchiha
Vielen Dank für dieses Update. Kurze Frage: Kann JavaFXPorts für kommerzielle Zwecke verwendet werden (Nutzung der Bibliothek, ohne sie zu ändern)? Ich habe eine JavaFX-Codebasis, die ich irgendwie in Android integrieren möchte. Gluon Mobile bietet eine kostenlose Testversion an, aber ich brauche eine dauerhafte Lösung. Ist JavaFXPorts (nicht Gluon Mobile) die Lösung? Bitte klären Sie
Nova
@ Nova Hallo. Ja, JavaFXPorts befindet sich unter der Ausnahme GPLv2 + CLASSPATH, sodass Sie es ohne Bedenken in Ihrem Projekt verwenden können. Da JavaFXPorts Ihnen jedoch nur eine minimale Unterstützung bietet (keine IDE-Unterstützung + keine mobilen Steuerelemente), wäre ich skeptisch, es für etwas Kommerzielles zu wählen. Die Verwendung von Gluon Mobile ist kostenlos. Beim Start Ihrer Anwendung wird nur ein Nag-Bildschirm angezeigt (kostenlose Version). Aber Sie können es loswerden, wenn Ihre App berühmt ist, indem Sie eine Gebühr zahlen :)
ItachiUchiha
@ ItachiUchiha das klingt vielversprechend! Eine letzte Frage: Der Vergleich von Gluon Mobile - Produkten fand hier zeigt der Nag - Screen ist der einzige Unterschied zwischen dem freien Tiere - und Indie - Tiere. Kann man davon ausgehen, dass ich die kostenlose Version unbegrenzt für kommerzielle Zwecke nutzen kann? Wie in, kein Ablaufdatum? Ich kann mit dem Nörgelbildschirm umgehen, bis das Geld hereinkommt :) Danke für die Klarstellung
Nova
1
Entschuldigung, noch eine Frage: Mein JavaFX-Code besteht zu 90% aus mehr als 20.000 Codezeilen. Kann ich Gluon Mobile trotzdem in meine Codebasis integrieren ... oder muss ich es von Anfang an verwenden, bevor ich eine einzelne Zeile schreibe? Thx
Nova
75

Ja, Sie können die JavaFX-Anwendung unter iOS, Android, Desktop und RaspberryPI ausführen (noch kein Windows 8-Handy).

Arbeit in Aktion:

Wir haben es geschafft! JavaFX8 Multimedia-Projekt auf iPad, Android, Windows und Mac!

JavaFX überall

Ensemble8 Javafx8 Android Demo

Meine JavaFX-Beispielanwendung, die auf Raspberry Pi ausgeführt wird

Meine Beispielanwendung läuft auf Android

JavaFX unter iOS und Android

Entwicklungsressourcen:

Android :

Erstellen und Bereitstellen von JavaFX-Anwendungen unter Android

iOS:

Die NetBeans-Unterstützung für JavaFX für iOS ist nicht verfügbar!

Entwickeln Sie in 10 Minuten eine JavaFX + iOS-App mit RoboVM + e (fx) -Clipse-Tools

Wenn Sie ernsthafte Anwendungen entwickeln möchten, finden Sie hier weitere Informationen

Sonstiges:

Gegenwärtig ist für JavaFX Oracle die Prioritätenliste Desktop (Mac, Windows, Linux) und Embedded (Raspberry Pi, Beagle Board usw.). Für iOS / Android-Orakel wurden die meisten Arbeiten und opnesourced javafxports dieser Plattformen als Teil von OpenJFX ausgeführt, aber dort ist keine JVM von Oracle für iOS / Android. Die Community fügt alles zusammen, indem sie das fehlende Teil (JVM) für iOS / Android ausfüllt . Die Community hat gute Fortschritte beim Ausführen von JavaFX auf iOS ( RoboVM) / Android ( DalvikVM ) erzielt . Wenn Sie möchten, können Sie auch durch Sponsoring ( Werden Sie ein RoboVM-Sponsor ) einen Beitrag zur Community leisten oder Apps entwickeln und Probleme melden.

Bearbeiten 23.06.2014:

Johan Vos hat eine Website für JavaFX-Ports JavaFX auf Mobilgeräten und Tablets erstellt . Überprüfen Sie diese auf aktualisierte Informationen.

invariant
quelle
3
RoboVM hat das beste Logo aller Zeiten. Es ist ein Vogel, es ist ein Daumen hoch, nein, es ist ein Flugzeug!
Aleksandr Dubinsky
Sie können diesen Link hinzufügen: youtube.com/watch?v=a3dAteWr40k&feature=youtu.be ;-)
assylias
@invariant Wie gut ist die Integration und der Zugriff auf Mikrofon, Beschleunigungsmesser, GPS, Kamera usw. für die verschiedenen Geräte?
mmm
Der erste Link ist tot. Archivierte Version: web.archive.org/web/20141008171951/http://…
Miscreant
4

Desktop: erstklassiger Support

Oracle JavaFX von Java SE unterstützt nur OS X (macOS), GNU / Linux und Microsoft Windows . Auf diesen Plattformen werden JavaFX-Anwendungen normalerweise auf JVM von Java SE oder OpenJDK ausgeführt.

Android: sollte funktionieren

Es gibt auch ein JavaFXPorts- Projekt, bei dem es sich um ein Open-Source-Projekt handelt, das von einem Drittanbieter gesponsert wird . Ziel ist es, die JavaFX- Bibliothek auf Android und iOS zu portieren .

Unter Android kann diese Bibliothek wie jede andere Java-Bibliothek verwendet werden. Der JVM-Bytecode wird zu Dalvik-Bytecode kompiliert . Es ist das, was die Leute damit meinen, dass "Android Java ausführt".

iOS: Status nicht klar

Unter iOS ist die Situation etwas komplexer, da weder Java SE noch OpenJDK Apple-Mobilgeräte unterstützen. Bis vor kurzem war die einzig sinnvolle Option die Verwendung des RoboVM -Java-Compilers für iOS. Leider wurde das RoboVM-Projekt am 15. April 2015 eingestellt .

Eine mögliche Alternative ist Intels Multi-OS Engine . Bis vor kurzem war es eine proprietäre Technologie, aber am 11. August 2016 war es Open-Source . Obwohl es möglich sein kann, eine iOS-JavaFX-App mit der JavaFX-Implementierung von JavaFXPorts zu kompilieren, gibt es bisher keine Beweise dafür. Wie Sie sehen können, ändert sich die Situation dynamisch, und diese Antwort wird hoffentlich aktualisiert, sobald neue Informationen verfügbar sind.

Windows Phone: keine Unterstützung

Mit Windows Phone ist es ganz einfach: Es gibt keinerlei JavaFX-Unterstützung.

cubuspl42
quelle
2

Möglich. Sie können auch kommerziellen Sport bekommen.

JavaFXPorts ist der Name des von Gluon verwalteten Open-Source-Projekts, das den Code entwickelt, der erforderlich ist, damit Java und JavaFX auf mobiler und eingebetteter Hardware ordnungsgemäß ausgeführt werden können. Das Ziel dieses Projekts ist es, möglichst viel zum OpenJFX-Projekt beizutragen und, wenn dies nicht möglich ist, die minimale Anzahl von Änderungen beizubehalten, die erforderlich sind, um die Ziele von JavaFXPorts zu erreichen. Gluon verwendet den JavaFXPorts-Quellcode und kompiliert ihn in Binärdateien, die für die Bereitstellung auf iOS, Android und eingebetteter Hardware bereit sind. Die JavaFXPorts-Builds sind auf dieser Website für alle Entwickler frei verfügbar.

http://gluonhq.com/labs/javafxports/

Jeton
quelle
-4
  1. Ja, Sie können es auf iOS und Android ausführen (Win8 wird nicht unterstützt!
  2. Keine Bereitstellung als Web-App funktioniert nicht
Tomsontom
quelle