Wie erzwingen javaFx Anwendung gtk3 libs verwenden? Ich weiß, dass SWT ermöglicht SWT_GTK3=1
Umgebungsvariable für diesen Zweck festlegen. Gibt es eine ähnliche Möglichkeit/Workaround für JavaFx?Wie man javaFx Anwendung gegen gtk 3 Bibliotheken laufen lässt?
Antwort
JavaFX verwendet GTK2-Bibliotheken und wird wahrscheinlich nicht in naher Zukunft wechseln. Hier ist die damit verbundene Ausgabe - https://javafx-jira.kenai.com/browse/RT-35264
UPDATE: die JavaFX Bugs sind jetzt auf bugs.openjdk.java.net:
- https://bugs.openjdk.java.net/browse/JDK-8088966 (geschlossen als Duplikat)
- https://bugs.openjdk.java.net/browse/JDK-8089584 (offen)
In der letzten Ausgabe gibt es einen Kommentar
Da GTK2 und GTK3 in der gleichen Anwendung Mischen verursacht dieses Problem, wir könnten zwei nativen Bibliotheken liefern, eine für GTK2 und eine für GTK3
also auf lange Sicht (JDK 9 Release) es könnte möglich sein, gegen GTK3
== UPDATE (11.05.2016)
Neue Funktion (8087516: Conditional support for GTK 3 on Linux) ermöglicht es uns, entweder GTK v2 oder 3 mit JavaFX zu verwenden, auszuführen. Der Standard hat sich nicht geändert - gtk 2 wird bevorzugt verwendet.
-Djdk.gtk.verbose=true // Output the version detected and used
-Djdk.gtk.version=3 // Toggles the preferred version to GTK 3
Weitere Details können here
Es gibt keine einfache Lösung. JavaFX hat ein eigenes Rendering-Framework. Soweit ich es verstehe, basiert das auf OpenGL und verwendet keinen nativen Code. Ohne dies wäre JavaFX nicht in der Lage, die Benutzeroberfläche mit CSS und visuellen Effekten zu stylen.
Wenn Sie das wirklich brauchen, dann müssen Sie Ihre eigene Bibliothek schreiben, die Gtk3 mit dem JavaFX-Szenengraph und anderen Werkzeugen emuliert. Dadurch können Sie jedoch nicht auf native Komponenten zugreifen.
Ihre beste Chance zu sprechen, ist zu den Java-Gnome Jungs finden. Sie haben ihre Bibliothek implementiert, die es ermöglicht, Java-Anwendungen mit GTK-Schnittstellen zu schreiben. Sollte eine mögliche Erweiterung sein, um auch JavaFX zu unterstützen. http://java-gnome.sourceforge.net/
- 1. Link gegen welche Bibliotheken für GTK funktioniert?
- 2. Wie man Elektronenprojekt laufen lässt
- 3. wie man rspec ohne Beobachter in Schienen 3 laufen lässt?
- 4. Wie man Video in Android laufen lässt?
- 5. Wie man Djangosellerie mit SQS laufen lässt?
- 6. wie man asp.net dlls laufen lässt?
- 7. Wie man Sellerie auf Fenster laufen lässt?
- 8. Wie man Winkelmesser mit browserify laufen lässt?
- 9. Wie man ein .jar in Mac laufen lässt?
- 10. Wie man willkürliche Serversoftware von Eclipse laufen lässt?
- 11. Wie man Cronjobs öfter als einmal pro Minute laufen lässt?
- 12. Wie man verschiedene Arbeiter auf OpenShift laufen lässt?
- 13. Javafx-Fenster gegen Region?
- 14. GTK + 3: Bestätigung vor dem Beenden der Anwendung anfordern
- 15. Wie man ein beständiges PHP-Skript laufen lässt?
- 16. Wie man Dienst nicht auf Hauptgewinde laufen lässt?
- 17. Wie man groovy Skript in Java laufen lässt?
- 18. Wie man Ansible playbook mit Bamboo oder jenkins laufen lässt
- 19. Wie man JMH in weniger Zeit laufen lässt
- 20. Eclipse, wie man mehrere ant-Ziele laufen lässt
- 21. Wie man Nodejs Programm jeden Mitternacht laufen lässt?
- 22. Jupyter & PySpark: Wie man mehrere Notizbücher laufen lässt
- 23. Wie man raspbian jessie auf dem Emulator laufen lässt?
- 24. Wie man .apk im Emulator außerhalb der Eklipse laufen lässt
- 25. Wie man einzelne Testmethode mit phpunit laufen lässt?
- 26. Wie man eine Swift-Schleife unendlich lange laufen lässt
- 27. Wie man jenkins comand von der Konsole laufen lässt?
- 28. Wie man Schienen s -p80 auf Port 80 laufen lässt?
- 29. Wie man ein einzelnes Gurkenszenario in Intellij laufen lässt?
- 30. Wie man django Shell von Emacs laufen lässt?
Ich habe eine sehr einfache App - https://gist.github.com/ibuziuk/8351313. Nachdem ich es ausgeführt und "sudo pldd [pid] | grep gtk" im Terminal verwendet hatte, bekam ich eine Ausgabe mit gtk2 libs. Was ich überprüfen möchte ist, ob javaFx mit gtk3 kompatibel ist? –
JavaFX verwendet Java, das AWT enthält, das auf einigen Plattformen mit GTK verknüpft ist. Das bedeutet nicht, dass Sie damit JavaFX-UIs erstellen können. –
Ja, aber es gibt eine Möglichkeit, die javaFx-Komponente über FXCanvas und JFXpanels in die Swing/AWT/SWT-Komponente einzubetten. Es funktioniert gut mit GTK2, aber nicht mit GTK3. Also habe ich einen Fehler im javaFx-Team erstellt - https://javafx-jira.kenai.com/browse/RT-35264. –