# JavaFX Installation



## gabelo (17. Jan 2022)

Hallo, 
ich versuche JavaFX zu installieren, schaffe es aber nicht. 

Ich habe mir das JDK runtergeladen und installiert. (Version 17.0.1)
Ich habe Eclipse installiert. (Version 2021-12)
Ich habe über das Marketplace in Eclipse e(fx)clipse installiert. 
Ich habe über die Gluon Webseite das JavaFX SDK (17.0.1) runtergeladen und entpackt. 
Ich habe über preferences - java - build path - user libraries die Dateien aus dem /lib Ordner des JavaFX SDK importiert.
Ich bin bei dem JavaFX Projekt auf Build Path - configure build path gegangen und habe die user library (die ich importiert habe) unter libraries - classpath hinzugefügt.

Jetzt sollten die Fehlermeldungen weggehen - es kommen immernoch die Fehlermeldungen "Application cannot be resolved to a type" etc. 

Kann mir bitte einer sagen was da schief läuft und wie ich JavaFX installieren kann?


----------



## Mart (17. Jan 2022)

rechtsklick neues JavaProjekt
unbedingt mit module info erzeugen
dann rechtsklick auf das fertige projekt -> configure -> add maven nature 

dann schaust du in die erzeugte datei die "pom.xml" heißt und fügst das da ein 

```
<properties>
        <java.version>16</java.version>
        <javafx.version>${java.version}</javafx.version>
</properties>
 <dependencies>
        <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-controls -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-graphics -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-base</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-web -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-web</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-fxml -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>${javafx.version}</version>
        </dependency>
    </dependencies>
```

ungefähr ist die stelle da ->

```
<project>
// das generierte zeug ...

// hier einfügen in der zeile zwischen der letzten generierten zeile und bevor project
</project>
```

dann auf module info klicken 
und diese zeile einfügen


> requires javafx.graphics;


die requires sachen werden dir später dann eh vorgeschlagen von eclipse ... efxclipse kannst du in der pfeife rauchen


----------



## Mart (17. Jan 2022)

hats funktioniert?


----------



## gabelo (17. Jan 2022)

Mart hat gesagt.:


> hats funktioniert?


Ja!! 
Was eine Erleichterung, als endlich die roten Kringel weg waren... 🙃 
Vielen Dank!


----------



## Mart (17. Jan 2022)

mit build path und isntallationen zu machen ist eine katastrophe ( efxclipse is da auf einem ganz anderem level )

maven und gradle sind package management systeme ( und noch vieles mehr ) ... die dependencies liste sagt "lad mir das runter und machs sichtbar" und in der Module info steht requires dh "ich bruach das da"

die java version kannst du natürlich auf die eclipse java version setzen ( normal 17 im moment denk ich ma )


----------



## Stephen46 (11. Apr 2022)

gabelo hat gesagt.:


> Hallo,
> ich versuche JavaFX zu installieren, schaffe es aber nicht.
> 
> Ich habe mir das JDK runtergeladen und installiert. (Version 17.0.1)
> ...


Hallo Gabelo,
danke für die Auflistung der Aktionen. 
Bei mir scheitert es daran, dass mein Eclipse in Preferences  Java > Buidl Path > User Libraries > Import die jar-Files aus dem Verzeichnis C:\Program Files\Java\javafx-sdk-18\lib nicht als User Library akzeptiert: "The selected file is not a valid user library data file".

Was mache ich da noch falsch?


----------



## yfons123 (11. Apr 2022)

du brauchst die lib dateien... das macht man aber nicht, tus so wie ( ich noch als Mart ) beschrieben hat das ist der zuverlässigste, einfachste und modernste weg javafx zu installieren


----------



## Stephen46 (11. Apr 2022)

yfons123 hat gesagt.:


> du brauchst die lib dateien... das macht man aber nicht, tus so wie ( ich noch als Mart ) beschrieben hat das ist der zuverlässigste, einfachste und modernste weg javafx zu installieren


Nun ja, ich nutze kein Maven. Damit kann ich deine Methode wohl nicht anwenden.


----------



## KonradN (11. Apr 2022)

Warum willst Du kein Maven (oder Gradle) nutzen? Alleine schon die Tatsache, dass Du eifnache Textdateien weiter geben kannst im Forum um mögliche Fehler zu finden, vereinfacht einiges. Bei so reinen Eclipse Projekten hast Du dann den Spaß in zig Fenstern die Konfiguration zu nennen und wir dürfen da dann abfragen, ob denn denn dieses oder jenes gesetzt hast.

Daher ist das auf jeden Fall der beste Weg, alleine schon weil es in der Regel eben nicht bei dieser einfachen Fragestellung bleiben wird....

Aber natürlich kannst Du es auch mit Eclipse machen. Dazu schau einfach einmal https://openjfx.io/openjfx-docs/ an - da wird alles im Detail beschrieben:
Unter dem Punkt "Run HelloWorld using JavaFX" werden die Grundlagen erläutert, die notwendig sind.
"JavaFX and Eclipse" hat dan alles Eclipse spezifische. Dich interessieren da dann "(Non-)modular from IDE". Die Schritte sollten so gut erklärt sein, dass man ihnen folgen kann...

Zumindest so es nicht noch tolle Probleme gibt von wegen falsche/alte Eclipse Version mit Problemen mit irgendwelchen Plugins weil man irgendwelchen Blogs gefolgt ist, die gefühlt irgendwann zwischen dem Deutsch-Französischen krieg (1872) und dem ersten WK entstanden sind (etwas übertrieben dargestellt).

Auch nicht zu vergessen: Java / JavaFX Version. Die spielen da auch gerne mal rein...


----------

