可以的,CentOS 完全可以在离线环境下编译 Java(以及编译 OpenJDK 本身),但前提是提前准备好离线所需的依赖和工具链。下面分两种常见理解来说明:
如果你指的是:用已经装好的 JDK 编译 .java 文件
只要机器上已有 JDK:
javac Hello.java
java Hello
rpm -ivh jdk-xxx.rpm
# 或
tar -zxvf jdk-xxx.tar.gz -C /opt
如果你指的是:从源码编译出一个 Java(如 OpenJDK 8/11/17)
在有网络的机器上准备好:
可通过:
yum install --downloadonly --downloaddir=./deps \
gcc gcc-c++ make autoconf ...
然后拷贝到离线机:
rpm -ivh *.rpm
⚠️ 编译 JDK 必须有一个已存在的 JDK:
# 示例:OpenJDK 11
hg clone https://hg.openjdk.java.net/jdk11u/jdk11u
或下载 zip 包拷贝
./configure \
--with-boot-jdk=/opt/jdk-10 \
--disable-warnings-as-errors
make images
libstdc++-staticfontconfig-devel| 需求 | 是否可离线 | 难度 |
|---|---|---|
| 用 JDK 编译 Java 程序 | ✅ 完全可以 | ⭐ |
| 编译 OpenJDK 源码 | ✅ 可以 | ⭐⭐⭐⭐ |
如果你愿意,可以告诉我:
我可以直接给你一套离线操作清单。