在 Debian 上“编译 Java 环境”通常有两种理解,我分别说明,你可以按需要选择。
适合想研究 JVM、修改 JDK 源码的人。
sudo apt update
sudo apt install -y \
build-essential \
autoconf \
automake \
libtool \
pkg-config \
zip \
unzip \
curl \
wget \
git \
libx11-dev \
libxext-dev \
libxrender-dev \
libxtst-dev \
libxt-dev \
libgl1-mesa-dev \
libcups2-dev \
libfreetype6-dev \
libasound2-dev \
ccache
OpenJDK 编译需要一个已有的 JDK(称为 boot JDK)。
例如编译 OpenJDK 17:
sudo apt install -y openjdk-17-jdk
git clone https://github.com/openjdk/jdk.git
cd jdk
查看版本分支:
git tag
git checkout jdk-21-ga # 以 JDK 21 为例
bash configure
常见参数:
bash configure \
--with-boot-jdk=/usr/lib/jvm/java-17-openjdk-amd64 \
--with-debug-level=release \
--enable-dtrace=no
make images
完成后生成的 JDK 在:
build/linux-x86_64-server-release/images/jdk
export JAVA_HOME=$(pwd)/build/linux-x86_64-server-release/images/jdk
export PATH=$JAVA_HOME/bin:$PATH
java -version
如果你只是想写 Java 程序,不需要编译 JDK 本身。
sudo apt update
sudo apt install -y openjdk-17-jdk
查看版本:
java -version
javac -version
.tar.gz:
https://jdk.java.net/tar -xzf openjdk-21_linux-x64_bin.tar.gz
sudo mv jdk-21 /usr/local/
echo 'export JAVA_HOME=/usr/local/jdk-21' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
javac Hello.java
java Hello
示例:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Debian Java");
}
}
| 需求 | 推荐方式 |
|---|---|
| 学习 Java 编程 | apt 安装 |
| 生产环境 | apt 或手动安装 |
| 修改 / 研究 JVM | 编译 OpenJDK |
| 嵌入式 / 裁剪 JDK | 编译 OpenJDK |
如果你愿意,可以告诉我:
我可以给你一套完全贴合你环境的步骤。