Forum Programmation.java Galère avec Java FX version 9, 10 , 11...

Posté par  . Licence CC By‑SA.
Étiquettes :
4
21
jan.
2019

Bonjour à toute et à tous,

Alors voilà, mon problème: je ne suis pas un développeur mais je m'amuse avec java, notamment avec javafx. Il y a de ça 2 ans, j'avais créé un petit programme pour mon fils (les aventures de la petite Peppa et de son frère George qui rencontre un garçon et qui jouent ensemble à la balle (façon casse brique).

J'ai voulu me remettre dessus, pour ajouter un 2e joueur et pourquoi pas passer le jeu sur tablette, mais là, patatra : Impossible de recompiler.

Bon après investigation, il semble que depuis java 8 (bien implanté, on l'utilise encore en version de production au travail), on ai eu Java 9, Java 10 et Java 11 !
Avec changement de licence (pour du mieux) mais disparition de javafx dans le sdk.

J'ai bien essayer d'installer le java sdk d oracle, l open sdk mais rien, pas de javafx.

Donc j'ai 2 questions:
Est ce pertinent de continuer à utiliser javafx, ce dernier n'étant plus de base fournie avec le sdk ? J'ai rien contre openjava (openjdk?) mais pourquoi par fournir aussi openfx ? Auriez vous un autre langage à me conseiller, portable (linux / windows), permettant de créer facilement (sans à avoir à installer 200 composant pour faire tourner le programme résultat) une interface user graphique ?

2e question: Connaîtriez-vous, une façon simple d'obtenir un eclipse compilant avec javafx en version 9 ? (j'ai écris mon programme en v8, mais j'ai lus depuis ce temps plein de livre sur java 9… mais si vous avez aussi un conseil pour avoir un truc qui marche simplement(= qui compile javafx) en V10 ou V11, je prend aussi:) )

Merci d'avance

  • # Qt

    Posté par  . Évalué à 1.

    Quand on me pose ce genre de question, je propose Qt. C'est un framework toujours en activité et multiplateforme.

    • [^] # Re: Qt

      Posté par  . Évalué à 2.

      Merci pour ta réponse. J'avais un peu regarder QT, mais la mise en place de l'outil pour développer sous windows est dur, en tout cas je l ai trouvé plus lourd a mettre en place que d'utiliser java / eclipse (sous windows / linux).
      Je me disais que python serait sympa aussi, mais là aussi c est lourd et pas très efficient coté interface graphique il me semble

      • [^] # Re: Qt

        Posté par  . Évalué à 1. Dernière modification le 22 janvier 2019 à 09:25.

        Mmmn, je n'ai pas touché à ce framework depuis un moment (10 ans) à l'époque il fallait visual studio et la config était compliqué. Du coup, je suis en train de le downloader là pour voir ce que s'est devenu:). Pour l'instant, c'est assez facile, j'ai été sur https://www.qt.io/ et j'ai suivi les instructions et hop c'est parti pour 10GB de download (wait and see).

  • # OpenJFX

    Posté par  . Évalué à 8. Dernière modification le 21 janvier 2019 à 14:47.

    Bonjour,

    JavaFX a été sorti du JDK mais n'est pas abandonné pour autant. Il continue a évoluer, et le projet OpenJFX existe bel et bien : https://openjdk.java.net/projects/openjfx/.
    Ils publient maintenant leur projet sur Maven (https://mvnrepository.com/artifact/org.openjfx).

    Tu peux donc rester sur cette stack que tu connais. Le plus simple pour toi (AMHA) est de passer à Java 11, et d'utiliser maven. Si tu ne connais pas, Maven est un outil de build permettant entre autre de gérer les dépendances et de packager ton appli.

    Un projet maven consiste en un fichier pom.xml qui décrit ton projet. Je te conseille de faire créer un projet Maven par eclipse car il y a une structure de fichiers standard qu'il est conseillé de respecter. Ensuite tu peux importer tes sources manuellement dedans.
    Voici un pom.xml de base avec les dépendances openjfx.
    Pour générer un jar exécutable :
    mvn package
    Pour lancer ton jar :
    java -jar target/tonjeu-1.0.0-SNAPSHOT.jar

    (les noms du group/artifact et ta classe main sont à remplacer selon ta convenance)

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.snurpsss</groupId>
        <artifactId>tonjeu</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
            <maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
            <java.source.version>1.8</java.source.version>
            <java.target.version>1.8</java.target.version>
            <main-class>org.snurpsss.tonjeu.Main</main-class> <!-- chemin vers ta classe contenant ton main -->
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-controls</artifactId>
                <version>11.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-graphics</artifactId>
                <version>11.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-base</artifactId>
                <version>11.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-fxml</artifactId>
                <version>11.0.1</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.version}</version>
                    <configuration>
                        <source>${java.source.version}</source>
                        <target>${java.target.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${maven-assembly-plugin.version}</version>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <appendAssemblyId>false</appendAssemblyId>
                        <archive>
                            <manifest>
                                <mainClass>${main-class}</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>

    Bon courage

    • [^] # Re: OpenJFX

      Posté par  . Évalué à 1.

      Merci beaucoup ! J'avais regardé un peu maven, mais cela m'avait parut être de l'artillerie lourde pour mes petits trucs en java.

      J'avais bien vu sur la page du projet javafx qu'il y avait plusieurs méthodes (modulaires, pas modulaires, ce qui est un peu du chinois pour moi) via maven/gradle ou sans, mais comparativement à "avant" je me suis dit que c'était bien trop compliqué.

      S'il faut en passer par là (maven), je m'en vais suivre ton conseil et lire un peu sur la bête et tester ça sous eclipse.

      Encore merci (pas facile de se mettre seul à un langage, surtout quand l'écosystem est riche et en pleine migration)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.