杰瑞科技汇

linux java 开发环境

Linux Java 开发环境终极指南

在 Linux 上搭建 Java 开发环境,主流的方案主要有两种:

  1. 手动安装:通过 wget 下载 JDK,手动配置环境变量,这种方式能让你更深入地理解底层原理,适合喜欢掌控一切的开发者。
  2. 包管理器安装:使用系统自带的包管理器(如 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 TemurinOpenJDK 官网 下载你需要的版本,以 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 包

  1. JetBrains 官网 下载。
  2. 解压并运行 bin/idea.sh

VS Code + Java Extension Pack (轻量级)

如果你喜欢轻量、快速、高度可定制的编辑器,Visual Studio Code 是绝佳选择。

安装步骤:

  1. 安装 VS Code: 从官网下载或使用包管理器。

    # Ubuntu/Debian
    sudo apt update
    sudo apt install code
    # Fedora
    sudo dnf install code
  2. 安装 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。

安装步骤:

  1. 下载 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
  2. 解压并移动

    # 解压
    tar -xzf apache-tomcat-9.0.85.tar.gz
    # 创建目录
    sudo mkdir -p /opt/tomcat
    # 移动并重命名
    sudo mv apache-tomcat-9.0.85 /opt/tomcat/latest
  3. 配置权限 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
  4. 创建 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
  5. 启动并设置开机自启

    # 重载 systemd 配置
    sudo systemctl daemon-reload
    # 启动 Tomcat
    sudo systemctl start tomcat
    # 检查状态
    sudo systemctl status tomcat
    # 设置开机自启
    sudo systemctl enable tomcat
  6. 配置防火墙 确保 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
  7. 验证 在浏览器中访问 http://<你的服务器IP>:8080,你应该能看到 Tomcat 的欢迎页面。


总结与最佳实践

组件 推荐方案 优点 缺点
JDK SDKMAN! 版本管理极其方便,一键切换,支持多种发行版 需要先安装一个工具
手动安装 无需额外工具,完全掌控路径 版本切换麻烦,需手动配置环境变量
IDE IntelliJ IDEA CE 功能强大,智能提示,深度集成Java生态 相对较重,启动稍慢
VS Code + Java Pack 轻量,启动快,插件生态丰富 需要手动配置插件,复杂项目体验不如IDE
构建工具 SDKMAN! 与JDK管理无缝集成 -
包管理器 系统统一管理 版本可能不是最新的
Web服务器 手动安装 + Systemd 灵活可控,便于服务化管理 步骤稍多

给你的建议路径:

  1. 新手入门:直接使用 SDKMAN! 安装和管理 Java,然后安装 IntelliJ IDEA CE,这是最平滑、最不容易出错的路径。
  2. 追求效率:继续使用 SDKMAN!,但 IDE 可以选择 VS Code,享受更快的启动速度。
  3. 系统管理员/DevOps:可能会更喜欢使用 包管理器 安装 JDK,因为它与系统包管理集成得更好,便于维护整个系统的统一性。

希望这份指南能帮助你在 Linux 上顺利搭建一个强大、高效的 Java 开发环境!

分享:
扫描分享到社交APP
上一篇
下一篇