【问题标题】:Running JavaFX Application on another machine在另一台机器上运行 JavaFX 应用程序
【发布时间】:2019-10-26 17:13:49
【问题描述】:

我正在尝试分发 JavaFX 应用程序。

作为示例项目,我采用了JavaFX and NetBeans -> Non-modular with Maven。代码可以在这里找到:GitHub: openjfx/samples。

在我的机器上,这个应用程序可以工作。但是当我尝试在另一台机器上运行该 JAR 时,它会说:

Error: JavaFX runtime components are missing, and are required to run this application

在 Non-modular with Maven 部分中,该问题正在得到解决。作为一种解决方案,它建议:

Properties -> Libraries -> Run -> Modulepath -> + -> Add Library and add the JavaFX12

但我的项目属性看起来不同。他们缺少库:

两台机器都在 Ubuntu 和 Java 11 上运行。

【问题讨论】:

标签: java maven javafx openjfx


【解决方案1】:

就我而言,我使用的是 Windows 系统,但我认为它在 linux 上类似。问题是 openjdk 和 javafx 在其他计算机上并不总是可用,并且不包含在 .jar 中。

当我想在另一台计算机上使用我的应用程序时,我必须构建一个安装程序这个内容:

  1. myapp.jar
  2. openjdk 库文件夹
  3. javafxsdk 库文件夹

在快捷方式上,我指示运行命令调用我在我的应用程序上使用的所有模块:

--module-path="../../javafx-sdk-11.0.1/lib/" --add-modules="javafx.web" --add-modules="javafx.controls" --add-modules="javafx.fxml" --add-modules="javafx.base" -jar ../../myapp.jar

在你的情况下,也许你只需要创建一个带有命令的快捷方式并正确指示你的 .jar、openjdk 和 javafxsdk 的路由,当然,将它们下载到运行你的应用程序的计算机上。

【讨论】:

  • “不包含在 .jar 中”:如何将它们包含在 jar 中?我想导出所有依赖项。
  • 就我而言,我使用的是 netbeans。我想直接创建可执行文件是可以的,但是openjdk版本有错误是不可能的,至少在11版本。不知道12版本是否修复了。
  • 如果错误继续存在,您不能将其包含在 .jar 中。就像在开发应用程序时,您在框架上指明库的路径,现在您使用 .jar 时也必须指明它们,但使用命令,就像在终端上执行一样
猜你喜欢
  • 2018-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
相关资源
最近更新 更多