微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaFX 11:“缺少JavaFX运行时组件”

我正在尝试在Windows 10下使用jgrasp 2在JavaFX 11和Java 11下运行示例JavaFX代码(取自Java Illuminated的第五版).

我已经仔细阅读了“ JavaFX入门”指南(https://openjfx.io/openjfx-docs/),尽管取得了一些进步,但我还是很困惑.

我下载了最新的ZIP文件,将其解压缩,并更新了CLAsspATH,以包含编译所需的jar文件的路径.我可以成功编译该文件.但是,当我尝试运行时,出现以下错误消息:

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

“入门”指南说,可以通过在运行时调用添加以下选项来解决此问题:

module-path “[path]\lib” –add-modules=javafx.controls,javafx.fxml

我已经添加了选项,但是仍然收到错误消息.

先前的StackOverflow文章通常以上面的选项设置结尾; las,我不知道该怎么办.

最佳答案
作为初次使用的用户,我设法使它起作用,但是对我而言,这并不是一件容易的事.

我想并没有多少人熟悉此IDE,因此我将按照基本步骤发布我遵循的步骤:

> Download并安装jgrasp版本2.0.5_05 Beta.
>因为我已经安装了一些JDK,所以认情况下选择了JDK 10.0.2,所以我的第一步是找到一种使用JDK 11的方法.可以在Settings-> jgrasp启动设置,可以在其中设置Java可执行文件的路径:

SetJDK 11

然后,我重新启动了jgrasp.您可以在工具->中验证IDE使用的是哪个JDK.系统信息-> Java版本.

>打开HelloFX示例类.我从the OpenJFX docs开始最基本的示例.可以找到代码here.
>构建->鉴于JavaFX不再是JDK的一部分,按预期进行编译会引发很多错误

Compile fails

>按照OpenJFX文档,我们需要从here下载JavaFX SDK,然后将库添加到类路径.转到设置->路径/类路径->在工作区中,按“新建”,然后从下载的SDK / lib文件夹(至少javafx-base.jar,javafx-graphics.jar和javafx-controls.jar)中逐一添加不同的JavaFX jar.
>构建->编译现在应该可以工作了.
>下一步:构建->跑.这将失败:

----jgrasp exec: java HelloFX
Error: JavaFX runtime components are missing,and are required to run this application

 ----jgrasp wedge: exit code for process is 1.
 ----jgrasp: operation complete.

那是预料之中的.根据文档,我们需要设置module-path和add-modules参数.

>首次尝试:使用运行参数.设置后:

--module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls

再次运行失败,并显示与上面完全相同的错误消息,但控制台日志中有一个区别:

----jgrasp exec: java HelloFX --module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls

怎么了!!好吧…如果您在命令行上尝试该操作,它也会失败,因为参数的顺序错误,因此vm参数应该放在类名之前.

结论:运行参数不是VM参数!

>第二次尝试:为了提供VM参数,我发现的选项是编辑设置->编译器设置->工作区.认情况下,它使用的是通用的jdk(集成调试器).您可以查看它,并看到它在运行中使用:

java %s -ea %s %<FLAGS2> %<MAIN_CLASS> %<ARGS>

因此,我们需要找到一种设置FLAGS2的方法,而不是ARGS.

幸运的是,在“环境”选项卡旁边,有一个“标志/ Args”选项卡,我们可以在FLAGS2中设置vm参数:

--module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls

VM args

>应用,关闭对话框,然后Build->运行课程,现在可以使用了!

如果您看到控制台日志,则它完全包含您在命令行上运行时将使用的命令:

----jgrasp exec: java --module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls HelloFX

 ----jgrasp: operation complete.

我想下一步将运行一个更复杂的项目…

原文地址:https://www.jb51.cc/java/532846.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐