Docker 运行小型 Java 类:无法找到或加载主类(即使它存在)

Dan*_*iel 4 java docker

我意识到这个问题可能已经被问过,但在我的研究中我找不到答案。我可能犯了一个简单的错误。

我想使用 Docker 在容器内本地运行 Java 类。下面是我的 Dockerfile:

Dockerfile

FROM maven:3.5.2-jdk-8

COPY src /src

RUN javac src/java/com/Main.java
CMD java src/java/com/Main
Run Code Online (Sandbox Code Playgroud)

然后我按顺序运行这些命令:

docker build -t my_image_6_26_19:latest .
docker run -it my_image_6_26_19:latest
Run Code Online (Sandbox Code Playgroud)

build命令运行正常,但该run命令引发以下错误:

Error: Could not find or load main class src.java.com.Main
Run Code Online (Sandbox Code Playgroud)

我已经审查了以下关于 SO 的问题,但似乎没有答案(或者也许我没有找到解决方案):

当我构建容器时,通过一些调试( )我可以看到正在创建RUN ls /src/java/com一个文件。Main.class我不确定为什么找不到该文件。此外,我尝试将 Dockerfile 的最后一行更改为CMD java src/java/com/Main.class,但没有成功。

mar*_*jno 5

如果Main没有包尝试:

 CMD java -classpath src/java/com Main
Run Code Online (Sandbox Code Playgroud)

如果它确实有一个包(例如com,也许?)尝试:

CMD java -classpath src/java com.Main
Run Code Online (Sandbox Code Playgroud)