Her er min guide til opsætning af dit første JavaFX projekt i IntelliJ. Her vil vi prøve at undgå nogle kendte problemer med at få et projekt til at fungere blandt gruppemedlemmer med forskelligt udstyr.
Mål
- At undgå frustrationer med at oprette et nyt projekt til dit danmarkskort.
- At opsætte et JavaFX projekt i IntelliJ med Gradle som build tool.
- At opgradere basisprojektet til at bruge følgende:
- Java SE 21
- JavaFX 21.0.2
- Gradle 8.6
Fremgangsmåde
1. Opret et normalt JavaFX projekt
Først skal du have “New Projekt” dialogen frem. Files → New → Project...
- Vælg JavaFX generatoren.
- Vælg et projektnavn og en placering.
- Lav gerne et lokalt gitrepos nu.
- Sproget skal være
Java
og build systemGradle
. - Du kan vælge et andet gruppenavn. Dette bliver til roden af Java pakkenavnet i dit projekt. Undgå at bruge tal til sidst i navnet, ellers rejser det en advarsel.
- Som JDK kan du vælge enhver udgave af Java version 21. Jeg bruger
Oracle OpenJDK 9.0
her.
- På den næste side kan du tilvælge flere biblioteker som IntelliJ tilbyder til JavaFX. Du behøver ikke at tilføje nogle af dem til at begynde med.
2. Opgrader Gradle Wrapperen
Nu har du en kopi af grundprojektet “HelloApplication” at arbejde med. En besked nederst til højre fortæller dig, at Gradle 8.2 ikke er kompatibel med Java 21. For at tage hånd om dette skal du opgradere projektets Gradle wrapper. Det er lettest at gøre fra terminalen.
- Åbn en terminal, som er indstillet på projektmappen. Du kan gøre det i IntelliJ fra den venstre sidebar nær bunden.
- I Windows åbnes en Windows Powershell terminal. Brug kommandoen
.\gradlew wrapper --gradle-version 8.6
for at opdatere Gradle wrapperen til version 8.6. Denne understøtter Java 21. - I OSX åbnes en zsh terminal. Kommandoen er
./gradlew wrapper --gradle-version 8.6
på dette system. - Mappen
.gradle
burde nu indeholde version 8.6 af Gradle.
Almindelige problemer med dette er
- at terminalen ikke er sat til den rigtige mappe, eller
- at
gradlew
ikke har tilladelse til at køre.
Du kan bruge $ls -l
til at se tilladelser for filer inklusive kørsel tilladt.
3. Skift til JavaFX 21.0.2
Sørg for at angive den seneste udgave af JavaFX i din build.gradle
fil. Gradle henter og håndterer de eksterne biblioteker til dit projekt.
javafx {
version = '21.0.2'
modules = ['javafx.controls', 'javafx.fxml']
}
4. Push og god arbejdslyst!
Nu er du klar til at arbejde på dit projekt. Push det til et fjernrepo efter eget valg og få dine gruppemedlemmer til at afprøve basale Gradle tasks såsom run
, build
, javadoc
og test
. Disse bør fungere uden problemer på alle enheder.
Motivation
På trods af, at du måske har fået tidligere afleveringer til at virke på din egen computer, kan det være mere udfordrende at få dette til at fungere på tværs af flere maskiner, som skal dele et fælles fjernrepos.
I mit første forsøg på at sætte projektet op, brugte jeg Java SE 17, JavaFX 17.0.6 og med Gradle 8.2 som build tool.
Projektet kunne dog ikke køres på en nyere MacBook med ARM processorarkitektur. En dealbreaker for os, da det var halvdelen af holdets maskiner.
Dette viser sig at være en kendt fejl i JavaFX 17. Programkoden som understøtter ældre JavaFX kan fejle på nogle Mac systemer. Løsningen er at opgradere projektet til version 21 af Java og JavaFX, men dette kræver også en opgradering af Gradle udgaven brugt i dit IntelliJ projekt.
Det vil være helt fint at kode dit projekt i Java 21. Det er den seneste LTS udgave af Java og understøtter de funktioner i Java, du har arbejdet med indtil videre.