当前位置: 首页 > 知识库问答 >
问题:

为什么OpenJDK 8在使用Docker时不能调用正确的JavaFX库?

宋高谊
2023-03-14

我写了一个java程序。主要内容包括OpenJDK8、Maven和JavaFX。该程序自行构建和运行。我想把它放在一个Docker容器里,但我很难把它建造起来。

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的错误:

未能在项目上执行goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec(unpack-dependencies)codedemo:命令执行失败。无法运行程序“/usr/lib/jvm/java-8-openjdk-amd64/jre/../bin/javafxpackager”(在目录“/usr/src/app”中):错误=2,没有这样的文件或目录->[帮助1]

我在一个CodeDemo目录中有所有的文件。在顶层,我有src、target、Dockerfile、pom.xml。在target中,我有html" target="_blank">编译好的jar。

共有1个答案

邴和雅
2023-03-14

您有多个from行。基于您的Dockerfile,将只使用maven基映像。也许在安装OpenJFX之前尝试通过另一个run语句安装openjdk?

在您的DockerFile中也没有看到任何copy语句。我最初假定maven映像中默认存在codedemo-1.0-snapshot.jar,但我只是尝试构建映像,它并不存在。如果这是Java程序中的jar文件,不要忘记通过DockerFile中的copy语句添加它。

 类似资料:
  • 我正在使用vscode,eslint正在运行,但它在同一项目中的其他文件中找不到某些文件中的错误。 有什么方法可以调试这个吗?像一个更详细输出的选项,它会告诉我在vscode中运行时每个文件的配置在哪里?

  • /usr/local/kafka2.12-2.6.0/config/server.properties 在开始动物园管理员和Kafka之后,创建一个新的主题 检查所有三个节点上的集群状态

  • 我今天通过下载了OpenJDK8,看起来JavaFX似乎不在其中。 我也在最新的Eclipse(Eclipse Mars)中安装了E(fx)clipse,但我仍然收到javafx无法解析的消息。

  • 你好,谢谢你花时间处理我的问题。首先让我向你介绍我的虚拟/培训项目。下面列出的类应该代表MVC模型(模型、视图、控制器)之后的程序。运行主类时,会打开FileChooser,从中可以选择. csv-File,其中包含保存为String[][]的信息。这个String[][]然后在视图类中可视化为JTable。这个JTable是带有BorderLayout的JFrame中的JPanel的一部分。中心

  • 我试图运行一个普通的bash脚本,从容器中运行一个工具,并将其输出提取到主机。这就是我到目前为止得到的(当然去掉了脚本本身): 这给出了错误:“无法在停止状态下执行”。正确的执行方式是什么?我的目标是最终运行docker程序并将输出带到主机。

  • 问题内容: 有时,我们遇到一个SWT复合材料,它绝对拒绝正确布局自己。当我们在复合体上调用dispose然后将其替换为另一个时,常常会遇到这种情况。尽管似乎并不严格限于这种情况。 当我们遇到这个问题,约50%的时间,我们可以调用和对违规复合材料,并且一切都会好起来。但是,大约有50%的时间,我们必须这样做: 布局管理器之类的每一种组合都曾经发生过这种情况。 我希望我有一个很好的,简单的,可复制的案