问题标签 [javafx-11]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
696 浏览

java - 如何为 Openjdk 11 和 Openjfx 11 应用程序构建工件?(智能思想)

我实际上是 openjfx 11 的新手,我已经尝试使用 openjdk 和 openjfx 库在 intellij IDEA 中编译我的项目。但是在我为我的项目构建工件之后,我的项目的 jar 文件没有执行。

我尝试使用 cmd 执行它并看到此错误:

错误:缺少 JavaFX 运行时组件,需要运行此应用程序

已经搜索了很多论坛,但是我没有看到针对此特定问题的解决方案。

提前致谢!

0 投票
1 回答
1094 浏览

java - Maven 和 Eclipse 之间启动 JavaFX 11 应用程序的不同行为

我开始深入研究大型应用程序(包括 Java FX 部分)的 Java 11 迁移,我需要您的帮助来了解命令行上的 Maven(3.5.4)和 Eclipse(2018-09 与 Java11 升级)之间的区别)。

我有一个简单的 Java 11 类

和一个简单的 pom

当我运行“mvn compile exec:java”时,我认为没有使用新的模块路径,程序按预期显示 JavaFX 面板。系统输出是:

jdk.module.path:空

jdk.module.upgrade.path:空

jdk.module.main:空

jdk.module.main.class:空

从 Eclipse 启动器运行时,我必须向启动器添加以下 vm 参数:

--module-path=${env_var:JAVAFX_PATH} --add-modules=javafx.controls

并且面板也显示,但输出是:

jdk.module.path : C:\dev\tools\javafx-sdk-11\lib

jdk.module.upgrade.path:空

jdk.module.main:空

jdk.module.main.class:空

jdk.module.main.class:空

我不能让它在 Eclipse 中工作,因为它是从命令行工作的:我被迫弄乱了模块和模块路径。如果我不添加 vm 参数,我会得到“错误:JavaFX 运行时组件丢失,并且需要运行此应用程序”或“启动层 java.lang.module.FindException 初始化期间发生错误:模块 javafx.controls未找到”。

它如何在没有更多配置的情况下从命令行工作?据我所知,Maven不会自动向模块路径添加任何东西......

任何想法 ?我错过了什么?

更新 1:我意识到当在 Eclipse 中“作为 Maven 项目”导入项目时(我总是这样做),它会导致 JRE 被添加到模块路径中(这不是我的 classis 项目的情况)。看截图在此处输入图像描述

0 投票
1 回答
558 浏览

maven - 在 OSGi 应用程序中使用 Openjfx 11 类


有谁知道是否有办法在 Eclipse 工作区中使用 JavaFX 模块?我有一个 OSGi-maven 多模块应用程序。

到目前为止,我已经尝试了几件事。

  1. 下载 JavaFX SDK 并在 Eclipse 中添加 jars 作为用户定义的库。
  2. 捆绑 JavaFX jar 并在之后将它们用作常规 OSGi 捆绑包(作为依赖项添加,之后在目标平台中添加)。

这两件事都有效。但是,在第一种情况下,每个开发人员都必须手动将这些 jar 作为库添加到类路径中。第二,对于每个平台,我们必须为每个模块提供不同的捆绑包。

如果我不做这些事情,我就会编译错误,无法找到 JavaFX 类(如预期的那样)。

有没有第三种方法可以做到这一点?通过使用一些 OSGi 功能或类似的东西?我还没有找到在 MANIFEST.MF 中添加模块的任何方法。这甚至可能吗?

我在 OSGi 框架启动器中添加了 JavaFX 模块作为 VM 参数,一切正常。但是我必须做之前提到的其中一件事情,这样我就不会出现编译错误。虚拟机参数:--module-path /path/to/javafx/sdk/11/lib --add-modules javafx.controls,javafx.graphics,javafx.base

0 投票
2 回答
18360 浏览

java - IntelliJ IDEA 2018.2、openjdk 11 和 openjfx 11(没有 maven,不是模块化项目):找不到模块 javafx.controls

我刚刚在 intelliJ 中使用 openjdk 11 创建了一个新的 JavaFX 项目,并且我已经在他们的网站上下载了最后一个 openjfx 库。

这是我所做的:

我已添加到运行/调试 VM 选项:--module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml VM 选项

我添加了一个新变量 env PATH_TO_FX :PATH_TO_FX=%programfiles%\Java\javafx-sdk-11\lib

所以它编译得很好,但在运行时失败:

有谁知道我在这里想念什么?

PS:我已经关注了这个链接https://openjfx.io/openjfx-docs/#install-javafx

编辑 :

我应该在这里有 onpenjfx 库吗?类路径

0 投票
2 回答
1093 浏览

java - 试图在 intellij jre11 上运行 javafx 程序

我已经安装了 intellij,我正在尝试打开一个新的 javafx,但我无法运行它(即使是默认的基本版本,也应该只打开一个简单的窗口)我正在使用 jdk 11(我必须)所以我下载了javafx,就像这篇文章中所说的那样:

错误:缺少 JavaFX 运行时组件,需要使用 JDK 11 运行此应用程序

但我得到这个错误

如果我尝试在解决方案中执行此行

然后在运行->编辑配置->虚拟机选项中,输入:--module-path="C:\Program Files\Java\javafx-sdk-11\lib" --add-modules=javafx.controls

错误更改为:

我试图在网上搜索超过 2 小时来解决这个问题,但没有任何效果 =\ 尝试在项目结构中将语言级别设置为 8\10\11,但仍然无法正常工作

带有hello world的常规java程序确实可以工作,只是java fx会出现问题......

0 投票
1 回答
2088 浏览

java - 升级到 Java 11 JavaFX 头疼

今天我安装了 JDK 11,我所有的 JavaFX 东西都乱了套。很公平,甲骨文可以为所欲为。我正试图让我的项目恢复到可运行状态,这是我第一次遇到这种模块化的东西,所以不知道到底发生了什么。

我已经设法在 Maven 中将库作为依赖项导入(尽管它在某些库的 maven 中找不到版本 11,我最终将 11-ea+19 用于 javafx-controls 等 - 无论如何..),所以我的代码可以很好地编译这些依赖项:

是的,我都需要它们。

所以现在我希望运行该程序但没有!我们在运行时得到一个错误:

好吧,人们似乎一直都有这个问题,因为他们没有添加“模块”。唯一的问题是发帖的人没有使用 maven,而是下载了存储在他们 PC 上某处的 JavaFX SDK。Maven 是否以聪明的方式下载这些内容,还是我必须做同样的事情并下载单独的 SDK?然后从那里添加模块?!这在我看来有点粗制滥造……

真正我想知道的是我应该把什么作为我--module-path的,以便我能--add-modules=javafx.controls,javafx.fxml,javafx.media,javafx.swing

为我沮丧的语气道歉。那些日子中的一天。

编辑:这是我的整个 pom.xml

exec-maven-plugin 没有找到 1.6.0 版本,但我可以在 maven 网站的中央仓库中清楚地看到它。这到底是什么......试图获得版本 11 的 javafx 库的同样问题。

编辑:已解决:我的 Maven 设置明显有问题,现在使用 maven-exec-plugin 版本 1.4.0 并且工作正常。

0 投票
4 回答
5739 浏览

java - 使用 Maven 的 JavaFX 11 抛出异常:“WindowsNativeRunloopThread”

我一直在使用Maven测试 JavaFX 11 ,但无法让它工作。我已经安装了 Open JDK 11,如果从可下载的 .zip 添加 jar 来构建路径,一切正常。

但是,当我使用javafx 11站点中推荐的 POM 文件时,出现以下错误。

这个问题似乎在这里出现过一次,但该线程中的解决方案都没有奏效。

有人对如何诊断问题有建议吗?我在 Eclipse 4.9 中运行,并附上了两个项目的屏幕截图,除了一个使用 maven 和另一个在构建路径中添加了 jar 之外,它们是相同的。非常感谢任何帮助。两个项目。 javafx11mvn 是一个从 POM 文件加载 javafx11 依赖项的 Maven 项目,java11test2 是一个标准的 java 项目,其中 javafx11 jar 被添加到构建路径]

0 投票
1 回答
46243 浏览

java - IntelliJ IDEA - 错误:缺少 JavaFX 运行时组件,需要运行此应用程序

我正在使用OpenJFX的JDK 11.0.1JavaFX 11运行IntelliJ IDEA Ultimate 2018.2.5。我知道这是一个常见错误,我尝试了许多建议的修复程序,但没有任何效果。

无论我尝试运行哪个 JavaFX 项目,我都会收到错误消息:

如果我将以下内容添加到 VM 选项中

我收到这些错误:

我尝试重新安装没有任何运气。我也尝试过更改 getClass().getResource(...)getClass().getClassLoader().getResource(...)或更改为类似的Parent root = FXMLLoader.load(getClass().getResource("/sample.fxml"));内容,但仍然无法正常工作。

0 投票
1 回答
918 浏览

java - 无法在 Windows 上使用 JavaFX 11 运行 Maven 阴影 jar

起初我得到了缺少 JavaFX 运行时组件的错误,这导致我进入了这个线程。在该线程中应用解决方案后,即创建一个不扩展 Application 的不同 Main 类后,我收到一条新的错误消息,下面是带有 -Dprism.verbose=true 的完整堆栈跟踪:

我尝试了不同的 JDK 11 构建,但它们都提供了相同的错误消息

0 投票
2 回答
3425 浏览

java - 使用 JavaFX 11 的自定义 JRE

我正在使用 JDK11 和 JavaFX11。

我使用 Jlink 为我的示例 FX 模块程序创建了一个自定义 JRE,但是当我尝试使用自定义 JRE 运行时,它会呈现如下错误:

这就是我创建自定义 JRE 的方式(没有错误):

这就是我尝试运行的方式(有错误):

错误消息:

这是我的编译方式:

源 JavaFXDe​​mo.java:

module-info.java

我就是这样编译的。

编译后,我的模块类文件如下:

我可以成功运行如下:

不过,我可以使用默认的 JDK11 运行。

如何成功创建自定义 JRE 并使用它运行示例 FX 模块程序?