在 CentOS 旧版本(如 CentOS 6 / 7) 上编译 Java(通常指 OpenJDK 或 Oracle JDK 源码),步骤大致如下。下面以 编译 OpenJDK 8 为例(最常见、资料最多)。
yum groupinstall "Development Tools" -y
yum install -y \
java-1.7.0-openjdk-devel \
libXtst-devel libXrender-devel \
cups-devel freetype-devel \
alsa-lib-devel ccache \
zip unzip
⚠️ 编译 JDK 8 必须用 JDK 7 作为 bootstrap JDK
yum install -y mercurial
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u jdk8u
cd jdk8u
sh get_source.sh
git clone https://github.com/openjdk/jdk8u.git
cd jdk8u
cd jdk8u
bash configure \
--with-boot-jdk=/usr/lib/jvm/java-1.7.0-openjdk \
--with-target-bits=64 \
--disable-debug-symbols \
--enable-unlimited-crypto
常见错误检查:
bash configure --help
make images
编译完成后:
./build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/java -version
CentOS 6 默认 gcc 4.4,可能不支持:
yum install -y devtoolset-2-gcc devtoolset-2-gcc-c++
scl enable devtoolset-2 bash
export MAKEFLAGS="-j1"
export DATETIME=`date +%Y%m%d`
那就简单多了:
yum install java-1.8.0-openjdk-devel
javac Hello.java
java Hello
| 需求 | 方法 |
|---|---|
| 编译 Java 程序 | javac |
| 编译 OpenJDK | 源码 + bootstrap JDK |
| CentOS 6/7 | 推荐 OpenJDK 8 |
如果你能告诉我:
我可以给你 精确命令。