javafx11:;缺少JavaFX运行时组件";
我试图在JavaFX11和Java11下运行示例JavaFX代码(取自JavaIlluminated的第5版),在Windows10下使用JGRASP2 我已经广泛地阅读了《JavaFX入门》指南(),虽然取得了一些进展,但我还是被卡住了 我下载了最新的ZIP文件,将其解压,并更新了类路径,以包含编译所需的jar文件的路径。我可以成功编译该文件。但是,当我尝试运行时,会收到以下错误消息: 错误:缺少JavaFX运行时组件,运行此应用程序需要这些组件 《入门指南》指出,可以通过向运行时调用添加以下选项来解决此问题: --模块路径“[path]\lib”--添加模块=javafx.controls,javafx.fxml 我已经添加了选项,但仍然收到错误消息javafx11:;缺少JavaFX运行时组件";,java,javafx,jgrasp,javafx-11,Java,Javafx,Jgrasp,Javafx 11,我试图在JavaFX11和Java11下运行示例JavaFX代码(取自JavaIlluminated的第5版),在Windows10下使用JGRASP2 我已经广泛地阅读了《JavaFX入门》指南(),虽然取得了一些进展,但我还是被卡住了 我下载了最新的ZIP文件,将其解压,并更新了类路径,以包含编译所需的jar文件的路径。我可以成功编译该文件。但是,当我尝试运行时,会收到以下错误消息: 错误:缺少JavaFX运行时组件,运行此应用程序需要这些组件 《入门指南》指出,可以通过向运行时调用添加以下
以前的StackOverflow文章通常以上面的选项设置结束;唉,我不知道还能做什么。作为第一次使用的用户,我已经设法让它工作了,但这对我来说并不简单 我想没有多少人熟悉这个IDE,所以我将发布我遵循的步骤,作为基本教程:
- 并安装jGRASP 2.0.5_05 Beta版
- 因为我安装了一些JDK,所以它默认选择JDK10.0.2,所以我的第一步是找到一种使用JDK11的方法。这可以在
中完成,在这里我可以为我的Settings->jGrasp Startup Settings
可执行文件设置路径:java
Tools->System Info->Java Version
中验证IDE正在使用哪个JDK
- 打开HelloFX示例类。我从最基本的样品开始。代码可以找到
,由于JavaFX不再是JDK的一部分,正如预期的那样,将抛出一系列错误:Build->compile
- 在OpenJFX文档之后,我们需要从下载JavaFXSDK,然后将库添加到类路径。转到
,按New,然后从下载的SDK/lib文件夹中逐个添加不同的JavaFX jar(至少Settings->PATH/CLASSPATH->Workspace
,JavaFX base.jar
和JavaFX graphics.jar
)JavaFX controls.jar
现在应该可以工作了Build->compile
- 下一步:
。这失败了:Build->Run
- 第一次尝试:使用
。设置后:运行参数
FLAGS2,而不是ARGS
幸运的是,在Environment
选项卡旁边有一个Flags/Args
选项卡,我们可以在FLAGS2
中设置vm参数:
--module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls
我想下一步将运行一个更复杂的项目…尝试只使用一个main方法创建一个启动器。它可能看起来像这样:
package application;
import javafx.application.Application;
public class MyAppLauncher {
public static void main(final String[] args) {
Application.launch(MyApp.class, args);
}
}
(您可以暂时不在应用程序中使用旧的main方法)
这对我来说在Ubuntu下的JDK13、JavaFX13和Eclipse2019-12都很有效。
(我使用“new/Maven Project/Simple Project”创建了这个项目,然后在pom.xml中添加了JavaFX、Logging和其他内容作为依赖项,它们都位于类路径上。只有JDK位于Modulepath上)
无需担心Java模块。
如果这样做行得通,您可以在另一天花时间学习Java模块化…
…记住对这个答案投赞成票。:-) 在运行时选项中,您是否更改了指向带有JavaFX库的文件夹的路径:“[path]\lib”
附加问题:当您说您添加了包含jar的类路径时,您是将其添加到windows类路径还是IDE类路径?1)是的,[path]被库的实际路径替换——在我的情况下,字面上是这样的“C:\Program Files\Java\javafx-sdk-11.0.2\lib”2)我更改了IDE类路径。当您键入此内容时,我收到了此解决方案的独立确认,该解决方案确实对我有效。您键入的内容比我准备的要好得多。谢谢!很高兴知道,希望此简短指南也能对其他人有用!
----jGRASP exec: java HelloFX --module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls
java %S -ea %S %<FLAGS2> %<MAIN_CLASS> %<ARGS>
--module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls
----jGRASP exec: java --module-path /Users/<user>/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls HelloFX
----jGRASP: operation complete.
package application;
import javafx.application.Application;
public class MyAppLauncher {
public static void main(final String[] args) {
Application.launch(MyApp.class, args);
}
}