Java Package Management on Arch Linux
Complete Guide: Java Package Management on Arch Linux
Master Java installation, version switching, and development environment setup
Published on August 30, 2025
Managing Java versions on Arch Linux can be straightforward once you know the right commands. This comprehensive guide will walk you through installing different Java versions, switching between them, and setting up your development environment efficiently.
🚀 Installing Java Packages
OpenJDK Versions
Arch Linux offers multiple OpenJDK versions through the official repositories. Here's how to install the most commonly used versions:
# OpenJDK 8 (Legacy support)
sudo pacman -S jdk8-openjdk
# OpenJDK 11 (LTS)
sudo pacman -S jdk11-openjdk
# OpenJDK 17 (LTS)
sudo pacman -S jdk17-openjdk
# OpenJDK 21 (LTS)
sudo pacman -S jdk21-openjdk
# OpenJDK 23 (Latest)
sudo pacman -S jdk-openjdk
Oracle JDK (AUR)
If you prefer Oracle's official JDK, you can install it from the AUR:
# Using yay AUR helper
yay -S jdk17-oracle
yay -S jdk21-oracle
🔍 Viewing Installed Java Versions
Arch Linux provides excellent tools for managing multiple Java installations:
# List all installed Java environments
archlinux-java status
# Check currently active Java version
java -version
javac -version
# Show Java installation path
which java
echo $JAVA_HOME
⚙️ Setting Default Java Version
Using archlinux-java Command
The archlinux-java
tool is the recommended way to manage Java versions on Arch Linux:
Check Available Versions
archlinux-java status
Set Default Version
# Set Java 8 as default
sudo archlinux-java set java-8-openjdk
# Set Java 11 as default
sudo archlinux-java set java-11-openjdk
# Set Java 17 as default
sudo archlinux-java set java-17-openjdk
# Set Java 21 as default
sudo archlinux-java set java-21-openjdk
Verify the Change
java -version
Alternative: Using update-alternatives
For more granular control, you can use the update-alternatives system:
# Configure Java alternatives interactively
sudo update-alternatives --config java
sudo update-alternatives --config javac
🛠️ Development Tools Installation
Complete your Java development environment with these essential tools:
# Build tools
sudo pacman -S gradle maven apache-ant
# Version control
sudo pacman -S git
# Text editors and IDEs
sudo pacman -S vim nano
yay -S intellij-idea-community-edition
📋 Package Management Commands
# Search for Java packages
pacman -Ss java | grep -i jdk
# List installed Java packages
pacman -Qs java
# Get detailed package information
pacman -Qi jdk17-openjdk
# Remove a Java package
sudo pacman -R jdk8-openjdk
🎯 Practical Example: Setting Up a Development Environment
Here's a complete workflow for setting up a Java development environment:
# 1. Install multiple Java versions
sudo pacman -S jdk11-openjdk jdk17-openjdk jdk21-openjdk
# 2. Check what's installed
archlinux-java status
# 3. Set Java 17 as default (recommended for most projects)
sudo archlinux-java set java-17-openjdk
# 4. Verify the setup
java -version
javac -version
# 5. Install development tools
sudo pacman -S maven gradle git
🔧 Environment Variables
For some applications, you might need to set the JAVA_HOME environment variable manually:
# Check current JAVA_HOME
echo $JAVA_HOME
# Set JAVA_HOME temporarily
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
# Add to ~/.bashrc for permanent setting
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' >> ~/.bashrc
🐛 Troubleshooting Common Issues
archlinux-java set
.
# Fix unset Java environment
sudo archlinux-java fix
# Force refresh environment
source ~/.bashrc
# Check Java installations
ls /usr/lib/jvm/
📱 Project-Specific Java Versions
For projects requiring specific Java versions, you can create simple scripts:
# Create a project-specific Java script
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
echo "Switched to Java 11 for this session"
java -version
No comments