Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Futur de JavaFX et versions récentes de Java #319

Closed
SpaceFox opened this issue Apr 29, 2018 · 3 comments
Closed

Futur de JavaFX et versions récentes de Java #319

SpaceFox opened this issue Apr 29, 2018 · 3 comments

Comments

@SpaceFox
Copy link
Contributor

SpaceFox commented Apr 29, 2018

J'ai essayé ZestWriter 1.8 d'après les .deb. Le rendu graphique sous Ubuntu 18.04 est franchement pas terrible, je me suis demandé si c'était mieux avec la version .jar

Sauf que, les .deb sont fournis avec Java 8, qui n'a plus de support public. J'ai voulu essayer avec Java 10 (il faut installer des paquets appelés « Java 11 » sous Ubuntu 18.04…), mais là, surprise :

  1. L'installation me demande d'avoir JavaFX installé.
  2. Il n'y a pas de version de JavaFX disponible compatible avec autre chose que Java 8
  3. En cherchant un peu, je découvre que JavaFX va avoir son propre cycle de vie

Je prévois donc un cas bien merdique à gérer dans un futur proche.

Donc, voici quelques tests :

OpenJDK 8

$ java -version zest-writer-all-1.8.0.jar 
openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)

Tout fonctionne si on a le paquet openjfx installé

OpenJDK 10

Plantage avec le log suivant :

$ java -version                         
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
$ java -jar zest-writer-all-1.8.0.jar   
Erreur : des composants dexécution JavaFX obligatoires pour exécuter cette application sont manquants.

Oracle JDK 10

Plantage avec le log suivant (et ce pénible refuse de s'installer en parallèle d'OpenJDK 10) :

$ java -version             
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
$ java -jar zest-writer-all-1.8.0.jar 
2018-04-29 21:06:41 INFO  MainApp:81 - Version Java de l'utilisateur: 10.0.1
2018-04-29 21:06:41 INFO  MainApp:82 - Architecture du système utilisateur: amd64
2018-04-29 21:06:41 INFO  MainApp:83 - Nom du système utilisateur: Linux
2018-04-29 21:06:41 INFO  MainApp:84 - Version du système utilisateur: 4.15.0-20-generic
2018-04-29 21:06:41 INFO  MainApp:85 - Emplacement du fichier de log: /home/spacefox/.config/zest-writer/zest-writer.log
2018-04-29 21:06:41 INFO  MainApp:98 - Répertoire Home par defaut : /home/spacefox
2018-04-29 21:06:42 INFO  Configuration:174 - Espace de travail chargé en mémoire
Exception in Application start method
java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:473)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:372)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:941)
Caused by: java.lang.RuntimeException: Exception in Application start method
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:973)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:198)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NoClassDefFoundError: com/sun/javafx/css/parser/CSSParser
	at de.jensd.fx.glyphs.GlyphIcon.<clinit>(GlyphIcon.java:48)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
	at java.base/java.lang.Class.newInstance(Class.java:560)
	at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1019)
	at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:754)
	at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
	at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
	at com.zestedesavoir.zestwriter.view.com.CustomFXMLLoader.load(CustomFXMLLoader.java:19)
	at com.zestedesavoir.zestwriter.MainApp.initRootLayout(MainApp.java:245)
	at com.zestedesavoir.zestwriter.MainApp.start(MainApp.java:222)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:919)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	... 1 more
Caused by: java.lang.ClassNotFoundException: com.sun.javafx.css.parser.CSSParser
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
	... 24 more
Exception running application com.zestedesavoir.zestwriter.MainApp
@firm1
Copy link
Owner

firm1 commented Apr 30, 2018

Hello,

Je prévois donc un cas bien merdique à gérer dans un futur proche.

Merci pour le retour. Effectivement, j'avais commencer à ressentir ça lors de ma tentative de migration vers Java9 de Zest Writer.

Plantage avec le log suivant (et ce pénible refuse de s'installer en parallèle d'OpenJDK 10) :

Le fait est-que, ZW dans son état actuel n'est pas cablé pour fonctionner sur une Java != 8. Pour la raison que tu vois dans les logs. Il faudrait mettre à jour la dépendance de.jensd.fx.glyphs pour être compatible. Le fait est qu'ils se sont basés sur une API issue de JavaEE dans leurs devs, sauf qu'avec la refonte de Java9, cette API n'est plus dipso dans le package de base.

Bref, une migration que j'ai commencé à un moment, mais par manque de temps (et parce que l'écosystème de mes dépendances n'était pas encore prêt), elle n'est pas terminée.

@ghost
Copy link

ghost commented Mar 18, 2019

Presque 1 an plus tard, qu'en est-il ?
Il faudrait mettre à jour l'application pour Java 11 maintenant, étant donné que c'est une LTS.

@firm1
Copy link
Owner

firm1 commented Aug 2, 2020

Désormais la branche master est compatible java 11 (voire 14).

@firm1 firm1 closed this as completed Aug 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants