0 - IntelliJ opsætning

Her er min guide til opsætning af dit første JavaFX gruppeprojekt 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.

Faldgruber

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. Det var en solid løsning, troede jeg.

Projektet kunne dog ikke køres på en nyere MacBook laptop blandt vores maskiner. Denne computer havde en anden processorarkitektur, og den bagvedliggende programkode til JavaFX 17 stoppede uventet efter en 5 sekunders timeout.

Dette viser sig at være en kendt fejl i JavaFX 17. Programkoden som understøtter det 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 for dig 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.

Tutorial

Forventet udfald
  • 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

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 system Gradle.
  • 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.

Top Top

  • 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.
Note

Almindelige fejl 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.