繁体   English   中英

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

[英]Why is OpenJDK 8 not pulling proper JavaFX libraries when using Docker?

我有一个编写的Java程序。 主要内容包括OpenJDK8,Maven和JavaFX。 该程序将自行构建并运行。 我想将其放入Docker容器中,但无法对其进行构建。

这是我的Dockerfile:

FROM openjdk:8-jdk
FROM maven:3.3-jdk-8-onbuild
RUN 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(解压依赖项):命令执行失败。 无法运行程序“ / usr / lib / jvm / java-8-openjdk-amd64 / jre /../ bin / javafxpackager”(在目录“ / usr / src / app”中):error = 2,没有这样的文件或目录-> [帮助1]

我的所有文件都在CodeDemo目录中。 在顶层,我有src,target,Dockerfile和pom.xml。 在目标中,我有编译的jar。

我对错误感到困惑,因为我认为JavaFX是Java 8 OpenJDK附带的。 因此,如果我要使用OpenJDK,则应该获取JavaFX所需的东西( GitHub上的类似问题 -解决方案仍然给出了错误)。

谁能指出我可能做错了什么方向? 我还应该做些其他事情来获得适当的库吗?

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

我也没有在您的Dockerfile中看到任何COPY语句。 我最初认为CodeDemo-1.0-SNAPSHOT.jar在Maven图像上默认存在,但我只是尝试构建该图像而它不存在。 如果这是Java程序中的jar文件,请不要忘记通过Dockerfile中的COPY语句添加它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM