Linux Java 开发环境终极指南
在 Linux 上搭建 Java 开发环境,主流的方案主要有两种:
- 手动安装:通过
wget下载 JDK,手动配置环境变量,这种方式能让你更深入地理解底层原理,适合喜欢掌控一切的开发者。 - 包管理器安装:使用系统自带的包管理器(如
apt,yum,dnf)或 Java 版本管理器(如 SDKMAN!)来安装和管理 JDK,这是最推荐、最便捷、最灵活的方式,特别是对于需要频繁切换 Java 版本的开发者。
下面,我将详细介绍这两种方案,并涵盖开发工具(IDE)、构建工具和服务器配置等。
使用 SDKMAN! (强烈推荐)
SDKMAN! (Software Development Kit Manager) 是一个多功能的命令行工具,用于管理多个软件开发工具包,包括 Java, Groovy, Kotlin, Maven, Gradle 等,它极大地简化了安装、切换和配置不同版本 SDK 的过程。
安装 SDKMAN!
打开你的终端(Terminal),运行以下命令:
curl -s "https://get.sdkman.io" | bash
安装完成后,重启你的终端,或者运行以下命令来加载 SDKMAN!:
source "$HOME/.sdkman/bin/sdkman-init.sh"
使用 SDKMAN! 安装和管理 Java
安装完成后,你可以通过简单的命令来管理 Java。
查看可用的 Java 版本
sdk list java
你会看到一大堆可用的版本,包括 Adoptium (OpenJDK), Amazon Corretto, Microsoft Build of OpenJDK, Oracle GraalVM 等。
安装一个 Java 版本
安装最新的 LTS (长期支持) 版本:
# 安装最新的 LTS 版本 (Java 21) sdk install java 21.0.2-tem # 安装一个具体的版本,Java 17 LTS sdk install java 17.0.10-tem
提示:
tem代表 Temurin,是 Adoptium 提供的、经过 TCK 认证的高质量 OpenJDK 发行版,是首选。
使用已安装的 Java 版本
你可以轻松地在已安装的版本之间切换:
# 查看当前使用的 Java 版本 sdk current java # 切换到 Java 17 sdk use java 17.0.10-tem # 再次查看当前版本 sdk current java
设置默认 Java 版本
如果你想将某个版本设为系统默认的 Java 版本(java, javac, jar 等命令都指向该版本):
sdk default java 17.0.10-tem
卸载 Java 版本
sdk uninstall java 17.0.10-tem
手动安装 JDK (以 OpenJDK 为例)
如果你更喜欢手动控制,或者在没有 curl 的环境中,可以选择这种方式。
下载 JDK
访问 Eclipse Temurin 或 OpenJDK 官网 下载你需要的版本,以 Eclipse Temurin 为例:
# 前往下载目录 (可选) cd ~/Downloads # 使用 wget 下载 JDK 17 (请替换为最新的下载链接) wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz
解压并移动 JDK
# 创建一个用于存放 JDK 的目录 sudo mkdir -p /usr/lib/jvm # 解压下载的文件 tar -xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz # 将解压后的文件夹移动到 /usr/lib/jvm/ # 注意:文件夹名可能是 jdk-17.0.10+7 或类似,请根据实际情况修改 sudo mv jdk-17.0.10+7 /usr/lib/jvm/
配置环境变量
这是最关键的一步,你需要编辑 ~/.bashrc 文件(或你使用的 shell 的配置文件,如 ~/.zshrc)。
nano ~/.bashrc
在文件末尾添加以下内容(请根据你实际的 JDK 版本和路径进行修改):
# 设置 JAVA_HOME export JAVA_HOME=/usr/lib/jvm/jdk-17.0.10+7 # 将 $JAVA_HOME/bin 添加到 PATH export PATH=$PATH:$JAVA_HOME/bin
保存并关闭文件(在 nano 中是 Ctrl+X, 然后按 Y, 最后按 Enter)。
使配置生效
运行以下命令,让新的环境变量在当前终端会话中生效:
source ~/.bashrc
验证安装
# 查看版本 java -version # 查看编译器版本 javac -version # 查看环境变量 echo $JAVA_HOME
如果都输出了正确的版本信息,说明安装成功。
选择和安装 Java IDE
代码编辑器是开发的核心,Linux 上有非常出色的选择。
IntelliJ IDEA (首选)
JetBrains 出品的 IDE,被誉为 Java 开发神器,社区版 (Community Edition) 对个人开发者、开源项目完全免费,功能已经非常强大。
安装方法:
A. 使用 Snap (最简单)
sudo snap install intellij-idea-community --classic
B. 使用 Flatpak
flatpak install flathub com.jetbrains.IntelliJ-IDEA-Community
C. 下载 .tar.gz 包
- 从 JetBrains 官网 下载。
- 解压并运行
bin/idea.sh。
VS Code + Java Extension Pack (轻量级)
如果你喜欢轻量、快速、高度可定制的编辑器,Visual Studio Code 是绝佳选择。
安装步骤:
-
安装 VS Code: 从官网下载或使用包管理器。
# Ubuntu/Debian sudo apt update sudo apt install code # Fedora sudo dnf install code
-
安装 Java Extension Pack: 在 VS Code 的扩展市场中搜索并安装这个扩展包,它会自动安装所有必需的插件,包括:
- Language Support for Java(TM) by Red Hat: 核心语言支持。
- Java Debug: 调试功能。
- Java Test Runner: 单元测试。
- Maven/Gradle for Java: 项目构建支持。
- Spring Boot Extension Pack: 如果你做 Spring 开发。
安装构建工具和项目管理工具
现代 Java 项目很少手动管理 .jar 包,而是使用构建工具。
Maven
Maven 是一个项目管理工具,通过 pom.xml 文件定义项目结构、依赖和构建生命周期。
使用 SDKMAN! 安装 (推荐)
sdk install maven
使用包管理器安装
# Ubuntu/Debian sudo apt install maven # Fedora/CentOS sudo dnf install maven
Gradle
Gradle 是一个更现代、更灵活的构建工具,使用 Groovy 或 Kotlin DSL 脚本 (build.gradle/build.gradle.kts)。
使用 SDKMAN! 安装 (推荐)
sdk install gradle
使用包管理器安装
# Ubuntu/Debian sudo apt install gradle # Fedora/CentOS sudo dnf install gradle
配置 Web 服务器 (Tomcat)
如果你的项目是 Web 应用(如 Spring Boot),你可能需要一个独立的 Servlet 容器,Apache Tomcat。
安装步骤:
-
下载 Tomcat 访问 Tomcat 官网 下载 Core 版本的 tar.gz 包。
cd ~/Downloads wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz
-
解压并移动
# 解压 tar -xzf apache-tomcat-9.0.85.tar.gz # 创建目录 sudo mkdir -p /opt/tomcat # 移动并重命名 sudo mv apache-tomcat-9.0.85 /opt/tomcat/latest
-
配置权限 Tomcat 需要特定用户来运行。
# 进入 Tomcat 目录 cd /opt/tomcat/latest # 给所有脚本文件执行权限 sudo chmod +x bin/*.sh # 创建一个 tomcat 用户 (可选但推荐) sudo useradd -r -s /bin/false tomcat sudo chown -R tomcat:tomcat /opt/tomcat/latest
-
创建 Systemd 服务 (方便管理) 创建一个服务文件:
sudo nano /etc/systemd/system/tomcat.service
粘贴以下内容(请根据你的 Java 和 Tomcat 路径修改):
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/jdk-17.0.10+7" # 指向你的 JAVA_HOME Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid" Environment="CATALINA_HOME=/opt/tomcat/latest" Environment="CATALINA_BASE=/opt/tomcat/latest" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/./urandom" ExecStart=/opt/tomcat/latest/bin/startup.sh ExecStop=/opt/tomcat/latest/bin/shutdown.sh [Install] WantedBy=multi-user.target
-
启动并设置开机自启
# 重载 systemd 配置 sudo systemctl daemon-reload # 启动 Tomcat sudo systemctl start tomcat # 检查状态 sudo systemctl status tomcat # 设置开机自启 sudo systemctl enable tomcat
-
配置防火墙 确保 8080 端口(Tomcat 默认端口)是开放的。
# UFW (Ubuntu/Debian) sudo ufw allow 8080/tcp # Firewalld (Fedora/CentOS) sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
-
验证 在浏览器中访问
http://<你的服务器IP>:8080,你应该能看到 Tomcat 的欢迎页面。
总结与最佳实践
| 组件 | 推荐方案 | 优点 | 缺点 |
|---|---|---|---|
| JDK | SDKMAN! | 版本管理极其方便,一键切换,支持多种发行版 | 需要先安装一个工具 |
| 手动安装 | 无需额外工具,完全掌控路径 | 版本切换麻烦,需手动配置环境变量 | |
| IDE | IntelliJ IDEA CE | 功能强大,智能提示,深度集成Java生态 | 相对较重,启动稍慢 |
| VS Code + Java Pack | 轻量,启动快,插件生态丰富 | 需要手动配置插件,复杂项目体验不如IDE | |
| 构建工具 | SDKMAN! | 与JDK管理无缝集成 | - |
| 包管理器 | 系统统一管理 | 版本可能不是最新的 | |
| Web服务器 | 手动安装 + Systemd | 灵活可控,便于服务化管理 | 步骤稍多 |
给你的建议路径:
- 新手入门:直接使用 SDKMAN! 安装和管理 Java,然后安装 IntelliJ IDEA CE,这是最平滑、最不容易出错的路径。
- 追求效率:继续使用 SDKMAN!,但 IDE 可以选择 VS Code,享受更快的启动速度。
- 系统管理员/DevOps:可能会更喜欢使用 包管理器 安装 JDK,因为它与系统包管理集成得更好,便于维护整个系统的统一性。
希望这份指南能帮助你在 Linux 上顺利搭建一个强大、高效的 Java 开发环境!
