JavaFX SpaceFX zum Laufen bekommen

lam_tr

Top Contributor
Hallo zusammen, hallo @dzim,

ich interessiere mich aktuell sehr viel für Gluon Substrate, leider komme ich mit der Doku nicht klar. Hat schon jemand diese Beispiele https://github.com/gluonhq/client-samples unter Windows zum Laufen bekommen?

Vor einem Jahr hatte ich mit Gluon Plug-In in Eclipse JavaFX auf dem Handy laufen bekommen.

Weiter habe ich ein weiteres cooles Beispiel https://github.com/HanSolo/SpaceFXMobile , das ich aber leider auch nicht zum Laufen bekommen. Wenn ich das Spiel ausschecke und mit gradle alles initialisiere, ist alles soweit gut. Aber die Ganzen OpenFX Depdencencies bekomme ich nicht aufgelöst, in jeder Klasse wo OpenFX benutzt wird gibt es Compile Errors, hat da jemand eine Idee?

Viele Grüße
lam
 

dzim

Top Contributor
Ein Kollege hat mit dem Standard Hello-World von Graal etwas herumgespielt und ist auf einen Bug im Zusammenhang mit TCP gestossen, der mit dem nächsten Release behoben wird.
Mit dem Gluon Client Plugin hatte er auch keinen Erfolg - ich denke, es ist auch noch nicht soweit, solange nicht Graal selbst ordentlich auf Windows läuft.

Auf Linux und Mac geht es schon, hier würde ich an deiner Stelle zuerst anfangen. Aber ich gebe zu: Auch hier sind einige Stolpersteine zu bewältigen. Wenn du dort mal etwas probierst: gern fragen, ich schau mal, ob ich mit meinem selbst recht dürftigen Wissen dort helfen kann.

Der master Branch von SpaceFX ist aber noch auf dem alten JavaFXPorts aufgesetzt. Den würde ich nicht mehr probieren, den kannst du auch nur bedingt noch auf Java 8 (für Android) kompilieren.

Ich denke, schau als erstes mal in das andere Repo von Gerrit: https://github.com/HanSolo/SpaceFX (ohne Mobile am Ende)
Das sollte erst mal als reguläre JavaFX-Anwendung, evtl. mit jpackage als Bundle, laufen. Aber nicht als native-image. Alternativ unterstützt es jpro - also JavaFX im Browser. Aber ich denke jpro ist leider noch nicht so weit, dass man es wirklich im grösseren Stil verwenden könnte. Nette Demo, wäre cool, ist aber noch nicht soweit.

Ich weiss, dass Gerrit auch was im Hinblick auf den Gluon Client gemacht hat, aber ich glaube, es ist nicht in dem Repo enthalten.
Wenn du in seinen Repos nach "Space suchst", kommt das hier raus:
https://github.com/HanSolo?utf8=✓&tab=repositories&q=space&type=&language=
Aber auch hier bin ich auf die Schnelle nicht fündig geworden.
 

lam_tr

Top Contributor
Hallo Dzim,

vielen Dank (mal wieder) für deine Antwort.

An sich geht es mir noch gar nicht mal um das Spiel, sondern eher das ganze JavaFX (OpenFX) auf einem Android Handy zu starten. Mit Gluon Mobile hatte ich letztes Jahr mit deiner Hilfe zum Laufen bekommen, aber das Ganze scheint mir sehr langsam zu sein (TableView mit ein paar TextFields). Ich wollte es diesmal direkt mit Substrate oder JavaFXPorts probieren, aber wenn es so noch nicht so weit ist, warte ich noch ein bisschen.

Okay, das Spiel SpaceFX testen ist trotzdem eine gute Idee.

JPro ist wirklich eine coole Sache, ich habe die Anwendung von Dirk Lemmermann (Senapt) gesehen, da macht es einfach so viel Spaß zu sehen was JavaFX alles drauf hat. Wenn die Mobile Sachen ausgereift sind, dann will ich nur noch JavaFX machen :)
 

dzim

Top Contributor
Also der alte Weg (siehe "letztes Jahr") ist immer noch JavaFXPorts - das ist auch das, womit SpaceFXMobile gemacht ist.
Pro: Läuft auf Android.
Contra: Benötigt Java 8 (z.B. von Bellsoft oder Azure) mit integrierten JavaFX um zu kompilieren. iOS 13.3 (das im Moment aktuelle) stürzt beim Start ab - hier muss man auf Client-Plugin wechseln.

JavaFXPorts wird aussschliesslich mit Gradle gebaut.
Das native image via GraalVM/GluonSubstrate (mithilfe des Client-Plugins) kann man mit Gradle oder Maven verwenden, im Moment wird aber - wenn ich es richtig verstanden habe - erst einmal das Maven-Plugin fertig gemacht, bevor Gradle wieder an die Reihe kommt. Als evtl. muss man hier von Gradle auf Maven migrieren, oder zwei Build-Files im Projekt händeln...

Also ich glaube, wenn das native-Zeug erst mal verhebt, dann kann man damit in Kombination mit dem JavaFX-Plugin in Maven eigentlich alles machen, was man braucht.

btw: Android via native image, also GraalVM/GluonSubstrate ist wohl noch nicht production ready. Nur als Hinweis. Also nur Desktop (Linux!, Mac! und Windows?) und iOS für den Moment.
 

lam_tr

Top Contributor
Also der alte Weg (siehe "letztes Jahr") ist immer noch JavaFXPorts - das ist auch das, womit SpaceFXMobile gemacht ist.
Pro: Läuft auf Android.
Contra: Benötigt Java 8 (z.B. von Bellsoft oder Azure) mit integrierten JavaFX um zu kompilieren. iOS 13.3 (das im Moment aktuelle) stürzt beim Start ab - hier muss man auf Client-Plugin wechseln.

JavaFXPorts wird aussschliesslich mit Gradle gebaut.
Das native image via GraalVM/GluonSubstrate (mithilfe des Client-Plugins) kann man mit Gradle oder Maven verwenden, im Moment wird aber - wenn ich es richtig verstanden habe - erst einmal das Maven-Plugin fertig gemacht, bevor Gradle wieder an die Reihe kommt. Als evtl. muss man hier von Gradle auf Maven migrieren, oder zwei Build-Files im Projekt händeln...

Also ich glaube, wenn das native-Zeug erst mal verhebt, dann kann man damit in Kombination mit dem JavaFX-Plugin in Maven eigentlich alles machen, was man braucht.

btw: Android via native image, also GraalVM/GluonSubstrate ist wohl noch nicht production ready. Nur als Hinweis. Also nur Desktop (Linux!, Mac! und Windows?) und iOS für den Moment.
Okay wenn GluonSubstrate bisher noch nicht mit Android läuft, dann lohnt sich erstmal gar nicht weiter in das Thema zu vertiefen. JavaFXPorts mit dem alten Weg (GluonMobile) hat soweit funktioniert, leider benötigt man für das Starten der Apps fast 20 Sekunden.

Aber solange es irgendwann für Android rauskommt kann ich warten.
 

dzim

Top Contributor
Also ich hab jetzt immerhin schon eine komplexere Anwendung, die ich jetzt noch irgendwie auf's Telefon bringen muss, nativ auf Linux und Mac (also für die Desktops) kompiliert.

Momentan noch ein Manko: WebView und Media gehen noch nicht nativ...

#edit: Ich muss dazu sagen, dass wir tatsächlich Support von Gluon gekauft haben, denn allein hätte ich die Migration nicht so hinbekommen. Das ist ein Monster! :eek:
 

lam_tr

Top Contributor
Vielen Dank für dein Feedback.

Ich habe am Wochenende zu Hause endlich Ubuntu eingerichtet, sodass ich bald Gluon und GraalVM testen kann.

Und wie lange habt ihr insgesamt für die Migration gebraucht?
 

dzim

Top Contributor
Es hat am Ende ~20 Arbeitsstunden gekostet.

Gleichzeitig wurde durch die App (die auf sehr viele Bilder setzt) ein Bug in Gluon Substrate gefunden (wir haben also quasi dessen Fix querfinanziert :)). Nun gibt es noch ein Issue, das in GraalVM selbst zu finden sein dürfte. Die Migration der App ist also eigentlich schon fertig, aber wir (unsere Firma) müssen halt noch auf den Fix in GraalVM warten.

Da wir auf ein paar native Plugins setzen - die wir weiterhin benötigen - ist der Migrationsaufwand aber auch höher, als bei einer App, die all so was nicht braucht. Und wenn sie nur auf dem Desktop laufen müsste, wäre es für Mac und Linux bereits fertig. Wann allerdings Windows soweit ist - keine Ahnung... Leider.
 

lam_tr

Top Contributor
Wenn es nur ca. 20 Arbeitstunden für so ein komplexes System (mit Support) ist, dann ist es erstaunlich wenig.

Dann werde ich bestimmt für meine kleinen Hobbyprojekte nicht all zu viel brauchen, hoffentlich.

Angenommen ich bekomme unter Linux (Unbuntu) alles (Gluon, GraalVM) zum Laufen , ist die Installation der App direkt möglich àuf ein nicht gemoddendes IPhone.

In dieser Anleitung steht https://github.com/gluonhq/client-samples von iOS, ist nicht Iphone OS damit gemeint oder?
 
Zuletzt bearbeitet:

lam_tr

Top Contributor
Ah ok, das macht Sinn und auf dem Desktop heißt es dann Mac OS.

Nun gut jetzt ist nur die Frage kann man ohne Jailbreak die kompilierte "ipa" wahrscheinlich auf dem IPhone installieren?
 

dzim

Top Contributor
Cross compiling geht nicht - also jedenfalls nicht vom Linux zum iOS.

Dafür musst du musst also einen Mac haben, Clang/LLVM installieren, GraalVM installieren, XCode installiert haben, einen Developer Account bei Apple haben (mit Kosten verbunden) und diesen korrekt eingerichtet haben.
Also in Bezug auf accessibility für Entwickler ist Apple für mich der absolute Graus!

Wenn dass alles gegeben ist, dann kannst du auf dem Mac sowohl die Mac-Desktop-App (dafür brauchst du weder XCode, noch Apple-Dev-Account, noch Clang/LLVM) als auch die iOS-App (hier brauchst die die drei zusätzlichen Dinge) bauen.
 

lam_tr

Top Contributor
Cross compiling geht nicht - also jedenfalls nicht vom Linux zum iOS.

Dafür musst du musst also einen Mac haben, Clang/LLVM installieren, GraalVM installieren, XCode installiert haben, einen Developer Account bei Apple haben (mit Kosten verbunden) und diesen korrekt eingerichtet haben.
Also in Bezug auf accessibility für Entwickler ist Apple für mich der absolute Graus!

Wenn dass alles gegeben ist, dann kannst du auf dem Mac sowohl die Mac-Desktop-App (dafür brauchst du weder XCode, noch Apple-Dev-Account, noch Clang/LLVM) als auch die iOS-App (hier brauchst die die drei zusätzlichen Dinge) bauen.
Das habe ich mir schon fast gedacht. Naja ich bin sowieso die meiste Zeit nur bei Win, Android und vielleicht Linux unterwegs. Danke
 

hansolo_

Neues Mitglied
Aloha,
bin gerade zufällig auf diesen Thread gestossen und wollte noch anmerken das im aktuellen SpaceFX repo ein mobile branch ist welchen ich aktuell nutze um das Spiel auf iOS und Android zu bauen und zu deployen. iOS braucht halt einen Mac und Android Linux. Die toolchain auf Linux ist etwas aufwändiger als unter OSX aber einmal eingerichtet funzt das sehr ordentlich.
Bei Rückfragen bzgl. des Spiels einfach issues auf github filen.
Cheers,
Gerrit
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Ich bringe Code mit JavaFX unter Apache NetBeans IDE 12.6 nicht zum laufen. AWT, Swing, JavaFX & SWT 14
N JavaFX applikation auf anderen Systemen zum laufen bringen AWT, Swing, JavaFX & SWT 7
T Swing 2 Thread.sleep parallel laufen lassen AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Animation, Kreise im vorgegebem Takt durchs Fenster laufen lassen AWT, Swing, JavaFX & SWT 3
T GWT Designer: ich bekomms nicht zum laufen AWT, Swing, JavaFX & SWT 2
C Kugel diagonal laufen lassen AWT, Swing, JavaFX & SWT 31
M Kann ein SwingWorker nur einmal laufen? AWT, Swing, JavaFX & SWT 2
D SWT Programm ausserhalb von Eclipse laufen lassen AWT, Swing, JavaFX & SWT 2
H Bekomme den TreeSelectionListener nicht zum Laufen AWT, Swing, JavaFX & SWT 5
K pfeil am spline laufen lassen AWT, Swing, JavaFX & SWT 6
F swing beispiele laufen nicht. AWT, Swing, JavaFX & SWT 6
Mausposition relativ zu JFrame bekommen AWT, Swing, JavaFX & SWT 6
K Wie kann ich noch den scale bekommen, außer mit getScaleX oder getScaleY? AWT, Swing, JavaFX & SWT 1
B AWT Bot um Daten auf Website einzugeben und die Antwort zu bekommen AWT, Swing, JavaFX & SWT 2
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
B Swing Wie Witdh und Height eines GuiElements bekommen AWT, Swing, JavaFX & SWT 5
T disabled Checkbox soll trotzdem Focus bekommen AWT, Swing, JavaFX & SWT 9
H Swing Focus bekommen AWT, Swing, JavaFX & SWT 4
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
S JTable Wert so bekommen wie er angezeigt wird..? AWT, Swing, JavaFX & SWT 2
G Liste einer JCombobox bekommen AWT, Swing, JavaFX & SWT 2
G Aus Arraylist bestimmte Objekte wiedergegeben bekommen? AWT, Swing, JavaFX & SWT 7
R Schriftfarbe ändern in JTextArea / Font bekommen AWT, Swing, JavaFX & SWT 2
C Fensterposition bekommen AWT, Swing, JavaFX & SWT 3
J JTabbedPane Tab in den Vordergrund (aktiviert) bekommen ? AWT, Swing, JavaFX & SWT 2
S Defaulticon für einen Datentyp vom System bekommen? AWT, Swing, JavaFX & SWT 3
T Alle Kinder eines JTree bekommen AWT, Swing, JavaFX & SWT 11
A (Default)TreeModel und wie die Daten hinein bekommen AWT, Swing, JavaFX & SWT 5
E Inhalt einer Zelle eine Table in ein TextField bekommen AWT, Swing, JavaFX & SWT 24

Ähnliche Java Themen

Neue Themen


Oben