在 Debian 上通过源码编译安装 Java(通常是 OpenJDK),大致流程如下。下面以 OpenJDK 17/21 为例(其他版本类似)。
sudo apt update
sudo apt install -y build-essential
sudo apt install -y autoconf bison gperf libasound2-dev libcups2-dev
sudo apt install -y libfontconfig1-dev libx11-dev libxext-dev libxrender-dev
sudo apt install -y libxtst-dev libxt-dev libxslt1-dev libffi-dev
sudo apt install -y zip unzip curl git
编译 OpenJDK 需要一个已安装的 JDK(叫 Boot JDK):
sudo apt install -y openjdk-17-jdk
java -version
wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c5f13fd7a937/13/GPL/openjdk-21.0.2_src.zip
unzip openjdk-21.0.2_src.zip
cd jdk21u-21.0.2
git clone https://github.com/openjdk/jdk.git
cd jdk
git checkout jdk-21+35
bash configure
常用参数示例:
bash configure \
--enable-debug \
--with-boot-jdk=/usr/lib/jvm/java-17-openjdk-amd64 \
--with-native-debug-symbols=internal \
--disable-warnings-as-errors
查看所有参数:
bash configure --help
make images
makemake -j$(nproc) images
编译完成后:
ls build/*/images/jdk/bin/java
cd build/*/images/jdk
./bin/java -version
如需全局使用:
sudo update-alternatives --install /usr/bin/java java $PWD/bin/java 100
sudo update-alternatives --install /usr/bin/javac javac $PWD/bin/javac 100
报错类似:
configure: error: The boot JDK is not a supported version
✅ 安装正确版本的 JDK 即可
export MAKEFLAGS="-j2"
sudo apt install openjdk-21-jdk
如果你愿意,我可以:
你现在是学习 JVM、改 JDK,还是必须源码装?