Skip to content

Latest commit

 

History

History
55 lines (41 loc) · 1.55 KB

File metadata and controls

55 lines (41 loc) · 1.55 KB

Java and Maven

JDKs and Maven are managed with SDKMAN in the user's home directory. Fedora's own headless OpenJDK stays installed and separate for system use.

Versions

Tool Version Notes
SDKMAN 5.23.0 ~/.sdkman
Java (default) 25.0.4-tem Eclipse Temurin 25 (LTS)
Java (alternate) 21.0.12+1.1-tem Eclipse Temurin 21 (LTS)
Maven 3.9.16 via SDKMAN
System JDK Fedora java-*-openjdk-headless untouched, for OS packages

Setup

curl -s "https://get.sdkman.io" | bash
# integrations.zsh already sources sdkman-init.sh

sdk install java 25.0.4-tem
sdk install java 21.0.12+1.1-tem
sdk default java 25.0.4-tem
sdk install maven 3.9.16

~/.config/zsh/integrations.zsh ends with:

export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"

Switching Java per project

Java 25 is the default. Select 21 for LTS-bound projects:

sdk use java 21.0.12+1.1-tem      # current shell only
sdk env install                   # write .sdkmanrc from current versions
sdk env                           # apply .sdkmanrc in this directory

Commit a .sdkmanrc in projects that need a specific JDK. JAVA_HOME is managed by SDKMAN's shims; do not hard-code it in the shell profile.

Verify

sdk current
java -version                     # Temurin 25.0.4
mvn -version                      # Maven 3.9.16, runtime = SDKMAN Temurin
which java                        # ~/.sdkman/candidates/java/current/bin/java