【发布时间】:2021-01-02 23:34:24
【问题描述】:
我创建了一个简单的 Eclipse 项目,在 src/com/docker/Main.java 中有 Main 类。 当我在构建映像后尝试在 docker 容器中运行它时,我得到了无法找到或加载主类错误。
Docker 镜像内容:
FROM openjdk:8
COPY . /app/
WORKDIR /app
RUN javac src/com/docker/Main.java
CMD ["java", "com.docker.Main"]
我尝试了 RUN 和 CMD 的几种变体,但没有任何效果。我尝试使用斜杠“/”但仍然没有用。
CMD ["java", "com.docker.Main.java"]
CMD ["java", "com.docker.Main.class"]
如果我在javac 部分之后运行以下命令,它会列出Main.java 和Main.class 文件。
RUN ls src/com/docker/
【问题讨论】:
-
试试你的工作目录是 /app/src 。
-
您必须将
-cp src添加到您的java命令中 -
@Oo.oO 我只试过-cp,没用
-
您的代码(生成的类)在
src/com/docker/Main.class中。这就是为什么你必须打电话给java -cp src com.docker.Main -
@Arnaud 成功了。为什么这是必要的?