温馨提示×

centos docker里怎么编译java

小樊
36
2026-09-06 10:40:47
栏目: 编程语言

CentOS 的 Docker 容器里编译 Java,常见做法有两种:使用官方 Java 镜像(最简单)或 在 CentOS 基础镜像里装 JDK 再编译。下面分别说明。


一、最简单:直接用官方 Java 镜像(推荐)

1️⃣ 拉取并运行容器

docker run -it --rm \
  -v $PWD:/workspace \
  -w /workspace \
  openjdk:8 /bin/bash

或 Java 11 / 17:

docker run -it --rm \
  -v $PWD:/workspace \
  -w /workspace \
  openjdk:17 /bin/bash

2️⃣ 编译 Java

javac Hello.java
java Hello

✅ 适合:学习、测试、快速编译


二、在 CentOS 容器里编译 Java(你要的是 CentOS)

1️⃣ 启动 CentOS 容器

docker run -it --rm centos:7 /bin/bash

2️⃣ 安装 JDK

CentOS 7

yum install -y java-1.8.0-openjdk-devel

CentOS 8(已 EOL,可用 Stream)

dnf install -y java-11-openjdk-devel

3️⃣ 验证

java -version
javac -version

4️⃣ 编译 Java

mkdir /project
cd /project
vi Hello.java
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello CentOS Docker");
    }
}
javac Hello.java
java Hello

三、用 Dockerfile(常用生产方式)

FROM centos:7

RUN yum install -y java-1.8.0-openjdk-devel && yum clean all

WORKDIR /app
COPY . .

RUN javac Hello.java

CMD ["java", "Hello"]

构建并运行:

docker build -t centos-java .
docker run --rm centos-java

四、常见问题

❓ yum 太慢 / 无法连接

yum makecache fast

❓ 只有 java 没有 javac

➡ 没装 -devel

java-1.8.0-openjdk-devel

❓ 想用 Oracle JDK

➡ 需要手动下载 rpm 或用挂载方式(不推荐容器里做)


如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Java 版本(8 / 11 / 17)
  • 是否用 Maven / Gradle

我可以给你精确到命令的示例

0