杰瑞科技汇

Linux开发Java程序,PDF该这样学吗?

在 Linux 环境下开发 Java 程序:从入门到实践


目录

  1. 引言:为什么选择 Linux 开发 Java?
  2. 环境准备
    • 1 选择 Linux 发行版
    • 2 安装 Java 开发工具包
    • 3 验证 Java 安装
    • 4 安装集成开发环境
  3. 第一个 Java 程序:Hello, World!
    • 1 使用文本编辑器(如 Vim/VS Code)
    • 2 使用命令行编译与运行
    • 3 在 IDE 中创建和运行
  4. 项目构建与管理
    • 1 使用 Maven 管理项目
    • 2 使用 Gradle 管理项目
  5. 日常开发任务
    • 1 使用 Git 进行版本控制
    • 2 调试 Java 程序
    • 3 性能分析
  6. 高级主题
    • 1 使用 Docker 容器化 Java 应用
    • 2 使用 systemd 管理后台服务

引言:为什么选择 Linux 开发 Java?

Linux 作为服务器端和云计算领域的绝对主流操作系统,为 Java 开发提供了一个稳定、高效且成本极低的平台,选择在 Linux 上开发 Java 程序具有以下显著优势:

Linux开发Java程序,PDF该这样学吗?-图1
(图片来源网络,侵删)
  • 原生性能与稳定性:Java 虚拟机在 Linux 上运行得非常出色,其内存管理和垃圾回收机制与 Linux 内核结合紧密,能提供卓越的性能和稳定性。
  • 强大的命令行工具:Linux 的 Shell(如 Bash)提供了强大的文本处理、文件操作和自动化脚本能力,极大地提升了开发效率。
  • 免费与开源:绝大多数 Linux 发行版和 Java 开发工具都是免费和开源的,无需支付任何许可费用。
  • 与服务器环境一致:在 Linux 上开发可以确保开发、测试和生产环境的高度一致性,减少因环境差异导致的问题。
  • 丰富的生态系统:拥有海量的服务器软件、容器工具(如 Docker)、监控工具和包管理器,与 Java 生态完美融合。

环境准备

1 选择 Linux 发行版

对于 Java 开发,以下发行版是优秀的选择:

  • Ubuntu:对新手友好,社区庞大,软件包丰富,推荐使用 LTS (Long Term Support) 版本,如 20.04 或 22.04。
  • CentOS / Rocky Linux / AlmaLinux:企业级的稳定选择,广泛用于生产服务器,RHEL/CentOS 系统使用 yumdnf 包管理器。
  • Debian:Ubuntu 的上游,非常稳定和纯净。

2 安装 Java 开发工具包

JDK 是编译和运行 Java 程序的基础,推荐安装 LTS 版本,如 OpenJDK 11OpenJDK 17

以 Ubuntu 为例 (使用 apt):

# 更新软件包列表
sudo apt update
# 安装 OpenJDK 17 (推荐)
sudo apt install openjdk-17-jdk
# 如果需要其他版本,OpenJDK 11
# sudo apt install openjdk-11-jdk

以 CentOS/Rocky Linux 为例 (使用 dnf):

Linux开发Java程序,PDF该这样学吗?-图2
(图片来源网络,侵删)
# 安装 OpenJDK 17 (推荐)
sudo dnf install java-17-openjdk-devel
# 如果需要其他版本,OpenJDK 11
# sudo dnf install java-11-openjdk-devel

3 验证 Java 安装

安装完成后,打开终端,输入以下命令验证:

# 查看版本信息,确认安装成功
java -version
# 查看已安装的 JDK 列表
update-java-alternatives --list
# (在 CentOS/RHEL 上可能使用: alternatives --display java)

你应该能看到类似以下的输出:

openjdk version "17.0.8" 2025-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-122.04, mixed mode, sharing)

4 安装集成开发环境

虽然命令行开发可行,但 IDE 能大幅提升效率,最流行的选择是:

  • IntelliJ IDEA:由 JetBrains 开发,功能最强大,社区版免费。
  • Eclipse IDE for Java Developers:老牌开源 IDE,插件生态丰富。

以 IntelliJ IDEA 为例:

Linux开发Java程序,PDF该这样学吗?-图3
(图片来源网络,侵删)
  1. 访问 JetBrains 官网
  2. 下载 "Community" 社区版。
  3. 下载后,通常是一个 .tar.gz 压缩包,解压即可使用:
    tar -xzf ideaIC-*.tar.gz
    cd idea-IC-*
    ./bin/idea.sh

第一个 Java 程序:Hello, World!

1 使用文本编辑器

创建一个工作目录,并使用 vimnano 等编辑器创建 HelloWorld.java 文件。

# 创建并进入项目目录
mkdir ~/java-dev
cd ~/java-dev
# 使用 vim 创建并编辑文件
vim HelloWorld.java

vim 中输入以下代码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Linux World!");
    }
}

保存并退出 (wq)。

2 使用命令行编译与运行

这是 Java 开发最基础也是最核心的步骤。

# 1. 编译 .java 源文件,生成 .class 字节码文件
# javac 是 Java Compiler 的缩写
javac HelloWorld.java
# 2. 运行编译后的 .class 文件
# java 命令会启动 JVM 来执行指定类的 main 方法
java HelloWorld

注意:运行 java 命令时,不要在类名后面加上 .class 后缀,这是一个常见的初学者错误。

预期输出

Hello, Linux World!

3 在 IDE 中创建和运行

  1. 打开 IntelliJ IDEA。
  2. 选择 "New Project"。
  3. 选择 "Java",确保 Project SDK 已经设置为你的 OpenJDK 17。
  4. 点击 "Create"。
  5. 在左侧 src 目录上右键,选择 "New" -> "Java Class"。
  6. 输入类名 HelloWorld 并回车。
  7. 将代码粘贴进去,然后点击绿色的运行按钮。

项目构建与管理

现代 Java 项目很少只有一个文件,依赖管理至关重要。

1 使用 Maven

Maven 是一个强大的项目管理和构建自动化工具。

创建 Maven 项目

在终端中,使用 Maven 的原型(Archetype)来快速创建一个标准项目结构:

mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

这会创建一个名为 my-app 的目录,包含标准的 Maven 项目结构。

理解项目结构

my-app/
├── pom.xml          # Maven 项目的核心配置文件,定义项目信息、依赖、插件等
└── src/
    ├── main/
    │   ├── java/    # 源代码目录
    │   └── resources/ # 资源文件目录
    └── test/
        ├── java/    # 测试代码目录
        └── resources/ # 测试资源文件目录

编译和运行

# 进入项目根目录
cd my-app/
# 编译项目
mvn compile
# 运行主程序 (需要在 pom.xml 中配置了 mainClass 或使用 exec 插件)
# 更简单的方式是直接运行测试
mvn test

2 使用 Gradle

Gradle 是一个更现代、更灵活的构建工具,其构建脚本使用 Groovy 或 Kotlin 语言编写。

创建 Gradle 项目

可以使用 gradle init 命令,或者直接在 IDE 中创建。

理解项目结构

my-gradle-app/
├── build.gradle.kts  # Groovy/Kotlin DSL 构建脚本
├── settings.gradle.kts # 项目设置
└── src/
    └── main/
        ├── java/
        └── resources/

编译和运行

# 进入项目根目录
cd my-gradle-app/
# 编译项目
./gradlew build
# 运行主程序 (需要在 build.gradle.kts 中配置 application)
./gradlew run

日常开发任务

1 使用 Git 进行版本控制

Git 是现代软件开发的必备工具,在 Linux 上使用 Git 非常方便。

初始化仓库

cd ~/java-dev/my-app
git init

配置 Git

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

基本操作

# 添加文件到暂存区
git add .
# 提交更改
git commit -m "Initial commit: Add Hello World"
# 查看状态
git status
# 查看历史
git log

2 调试 Java 程序

IDE 提供了强大的图形化调试器,以下是使用命令行调试的简要介绍:

使用 jdb (Java Debugger):

# 先编译代码
javac -g HelloWorld.java
# 启动 jdb,并指定要调试的类
jdb HelloWorld
# 在 jdb 命令行中,可以设置断点、运行、单步执行等
# (jdb) stop at HelloWorld:5
# (jdb) run
# (jdb) next
# (jdb) locals

3 性能分析

当程序变慢时,需要分析性能瓶颈。

  • VisualVM:JDK 自带的图形化监控和性能分析工具。

    # 启动 VisualVM
    jvisualvm

    它可以连接到本地或远程运行的 Java 进程,进行内存分析、CPU 分析和线程监控。

  • JProfiler / YourKit:商业工具,功能更强大,是专业性能分析的首选。


高级主题

1 使用 Docker 容器化 Java 应用

Docker 可以将 Java 应用及其所有依赖打包到一个轻量级、可移植的容器中。

创建 Dockerfile

在项目根目录创建一个名为 Dockerfile 的文件:

# 使用官方的 OpenJDK 17 镜像作为基础镜像
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 将 target 目录下的 jar 文件复制到容器中
# 假设你使用 Maven 或 Gradle 构建后,jar 包在 target/ 或 build/libs/ 目录
COPY target/my-app-1.0-SNAPSHOT.jar app.jar
# 暴露应用运行的端口
EXPOSE 8080
# 定义容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "app.jar"]

构建并运行镜像

# 构建镜像,-t my-java-app 是给镜像命名
docker build -t my-java-app .
# 运行容器,-p 将容器的8080端口映射到主机的8080端口
docker run -p 8080:8080 my-java-app

2 使用 systemd 管理后台服务

当你的 Java 程序需要作为后台服务运行时(例如一个 Web 服务器),可以使用 systemd

创建服务文件

创建一个服务文件,/etc/systemd/system/my-java-app.service

[Unit]
Description=My Java Application Service
After=network.target
[Service]
# 替换为你的实际 Java 程序路径和启动参数
ExecStart=/usr/bin/java -jar /path/to/your/app.jar --spring.config.location=/path/to/your/application.properties
# 运行服务时的用户
User=javauser
Group=javagroup
# 自动重启服务
Restart=on-failure
[Install]
WantedBy=multi-user.target

管理服务

# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start my-java-app.service
# 设置开机自启
sudo systemctl enable my-java-app.service
# 查看服务状态
sudo systemctl status my-java-app.service
# 查看日志
sudo journalctl -u my-java-app.service -f

在 Linux 环境下开发 Java 程序,结合了 Java 的跨平台能力和 Linux 的强大与稳定,从基础的命令行编译,到使用 Maven/Gradle 进行项目构建,再到 Docker 容器化和 systemd 服务管理,Linux 为 Java 开发者提供了一个功能完备且高效的工具链,掌握这些技能,将使您成为一名更专业、更全面的 Java 开发者。


附录:常用命令速查

功能 命令
Java/JDK
检查 Java 版本 java -version
编译 Java 源文件 javac MyClass.java
运行 Java 类 java MyClass
Maven
编译项目 mvn compile
打包项目 mvn package
安装项目到本地仓库 mvn install
运行测试 mvn test
跳过测试构建 mvn package -DskipTests
Git
初始化仓库 git init
添加文件到暂存区 git add <file>git add .
提交更改 git commit -m "commit message"
查看状态 git status
查看日志 git log
Docker
构建 Docker 镜像 docker build -t <image-name> .
运行 Docker 容器 docker run -p <host-port>:<container-port> <image-name>
Systemd
启动服务 sudo systemctl start <service-name>
停止服务 sudo systemctl stop <service-name>
启用开机自启 sudo systemctl enable <service-name>
查看服务状态 sudo systemctl status <service-name>
分享:
扫描分享到社交APP
上一篇
下一篇