Step 4: Java Development Kit
Time: 5 minutes
Purpose: Install Java 17 (LTS) for Java applications and company tools
Java 17 Installation Options
Recommended: Amazon Corretto - Free, production-ready OpenJDK distribution
Provider | Official Documentation | Use Case |
---|---|---|
Amazon Corretto | aws.amazon.com/corretto | Recommended - Enterprise, production-ready |
Adoptium | adoptium.net | Open source, widely used |
Oracle Java | oracle.com/java | Official Oracle distribution |
Quick Install via Package Managers
# macOS (Homebrew)
brew install --cask corretto17 # Amazon Corretto (recommended)
brew install openjdk@17 # Alternative: Adoptium/OpenJDK
# Windows (Chocolatey - PowerShell 7 as Administrator)
choco install corretto17jdk -y # Amazon Corretto (recommended)
choco install openjdk17 -y # Alternative: Adoptium/OpenJDK
# Linux (Ubuntu/Debian)
# For Corretto: see aws.amazon.com/corretto/faqs/#How_do_I_install_Amazon_Corretto
sudo apt install openjdk-17-jdk # Alternative: OpenJDK
Direct Downloads (GUI Installers)
Amazon Corretto (Recommended):
- All platforms: aws.amazon.com/corretto/downloads
Adoptium (Alternative):
- All platforms: adoptium.net/temurin/releases
Configure Java Environment
Most package managers auto-configure Java. If java -version
doesn't work, manually set environment variables.
Java Environment documentation: Oracle Java Environment Setup
Automatic Configuration
Most installations handle this automatically. Test first:
java -version # Should show Java 17.x
javac -version # Should show Java 17.x compiler
Manual JAVA_HOME Setup (if needed)
# macOS - Auto-detect Java 17 path
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
# Linux - Common OpenJDK path
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
# Add to shell profile to persist
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc # macOS
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc # Linux
# Windows PowerShell - Auto-detect Java installation
if (-not $env:JAVA_HOME) {
$javaPath = (Get-Command java -ErrorAction SilentlyContinue).Path
if ($javaPath) {
$javaHome = Split-Path (Split-Path $javaPath -Parent) -Parent
[Environment]::SetEnvironmentVariable("JAVA_HOME", $javaHome, "User")
$env:JAVA_HOME = $javaHome
}
}
Find Java Installation Paths
# macOS - List all Java versions
/usr/libexec/java_home -V
# Linux - Show installed Java alternatives
sudo update-alternatives --config java
# Windows - Typical installation directories
# C:\Program Files\Amazon Corretto\jdk17.x.x_x\
# C:\Program Files\Eclipse Adoptium\jdk-17.x.x.x-hotspot\
Verification
# Check Java version (should show Amazon Corretto 17.x.x)
java -version
# Check compiler
javac -version
# Check JAVA_HOME is set
echo $JAVA_HOME # Unix/macOS
echo $env:JAVA_HOME # Windows PowerShell
Expected output (Amazon Corretto):
openjdk version "17.0.x" 2023-xx-xx LTS
OpenJDK Runtime Environment Corretto-17.0.x.x (build 17.0.x+xx-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.x.x (build 17.0.x+xx-LTS, mixed mode, sharing)
Troubleshooting
"java: command not found"
- Verify Java is installed: Check Applications folder (macOS) or Programs folder (Windows)
- Check
JAVA_HOME
is set correctly - Restart terminal after setting environment variables
- On macOS, try running
/usr/libexec/java_home
to find the correct path
Multiple Java versions installed
If you have multiple Java versions, ensure you're using Java 17:
# macOS - Set to Java 17 specifically
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
# Linux - Set default Java version (if using Corretto)
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-amazon-corretto/bin/java 1
sudo update-alternatives --set java /usr/lib/jvm/java-17-amazon-corretto/bin/java