为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在使用 Docker 时 OpenJDK 8 没有提取正确的 JavaFX 库?

为什么在使用 Docker 时 OpenJDK 8 没有提取正确的 JavaFX 库?

动漫人物 2022-06-04 09:28:48
我有一个我写的java程序。主要包括 OpenJDK8、Maven 和 JavaFX。该程序自行构建和运行。我想把它放在一个 Docker 容器中,但是我在构建它时遇到了麻烦。这是我的 Dockerfile:FROM openjdk:8-jdkFROM maven:3.3-jdk-8-onbuildRUN apt-get update && apt-get install -y --no-install-recommends openjfx && rm -rf /var/lib/apt/lists/*CMD ["java","-jar","target/"CodeDemo-1.0-SNAPSHOT.jar"]这是我为构建容器而运行的内容:sudo docker build -t java-maven-code-demo .这是我一直抱怨没有 javafxpackager 的错误:无法在项目 CodeDemo 上执行目标 org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (unpack-dependencies):命令执行失败。无法运行程序“/usr/lib/jvm/java-8-openjdk-amd64/jre/../bin/javafxpackager”(在目录“/usr/src/app”中):错误=2,没有这样的文件或目录-> [帮助 1]我在 CodeDemo 目录中有所有文件。在顶层,我有 src、target、Dockerfile、pom.xml。在目标中,我有已编译的 jar。我对这个错误感到困惑,因为我认为 Java 8 OpenJDK 附带了 JavaFX。所以,如果我要使用 OpenJDK,我应该得到 JavaFX 所需的东西(GitHub 上的类似问题- 解决方案仍然给出了错误)。谁能指出我可能做错的方向?我还应该做些什么来获得正确的库吗?
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您有多FROM条线路。基于您的 Dockerfile,将仅使用 maven 基础映像。也许在安装openjfx之前尝试通过另一个RUN语句安装openjdk?

我也没有COPY在您的 Dockerfile 中看到任何声明。我最初假设CodeDemo-1.0-SNAPSHOT.jar默认情况下存在于 maven 图像上,但我只是尝试构建图像并且它不存在。如果这是您的 Java 程序中的 jar 文件,请不要忘记通过COPYDockerfile 中的语句添加它。


查看完整回答
反对 回复 2022-06-04
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信