Java Eclipse IDE 出现“未找到模块 javafx.controls”错误

问题描述 投票:0回答:7

我正在使用带有 Java 的 Eclipse IDE 2020-03 版本。我正在尝试使用 FXML,在线检查了一些教程和步骤并遵循它们。但我仍然收到以下错误:

boot层初始化时发生错误 java.lang.module.FindException:找不到模块 javafx.controls

我用谷歌搜索寻求帮助。有很多人遇到同样的问题并且能够解决这个问题。但我所看到的只是他们使用 NetBeans IDE 或 IntelliJ。有人有 Eclipse 的解决方案吗?任何帮助将不胜感激。

我遵循了本教程 -> https://www.youtube.com/watch?v=bC4XB6JAaoU 。这是我目前拥有的:

e(fx)clipse 3.6.0 installed from Market Place

“Java Build Path”包含库(我当时使用的是15.0,然后切换回14.0,但错误仍然存在)

javafs-sdk jar files

“Java Build Path”包含库(我当时使用的是15.0,然后切换回14.0,但错误仍然存在)

VM 参数具有以下行(指向库位置): --module-path "C:\Users\my_name\Documents\Scene Builder\openjfx-14.0.1_windows-x64_bin-sdk\javafx-sdk-14.0.1\lib “--add-modules javafx.controls,javafx.fxml

我尝试在 eclipse.ini 文件中使用“-clean”,但没有帮助。事实上,当我尝试创建新的简单项目并再次执行所有步骤时,Java 甚至无法识别 JavaFX。

谢谢!

java eclipse fxml javafx-11
7个回答
6
投票

我也遇到同样的问题。我的问题源于这样一个事实:由于某种原因,javafx sdk 库位于模块路径下,而不是构建配置中的类路径下。将 JavaFX SDK 从模块路径移动到类路径后,错误得到修复。

如果您也是这种情况,您只需右键单击 javaFX 项目文件夹 -> 构建路径 -> 配置构建路径 -> 选择 JavaFX SDK -> 删除库 -> 选择类路径 -> 添加库即可解决此问题> 用户库-> 选择库-> 应用。

本质上它应该是这样的:

here

找到了帮助我设置的很棒的教程

希望这有帮助


3
投票

如果您使用的是较新的版本,您应该将所有内容放入 ModulePath 中。

java-版本 openjdk版本“17.0.1”2021-10-19 OpenJDK 运行时环境(版本 17.0.1+12-39) OpenJDK 64位服务器虚拟机(版本17.0.1+12-39,混合模式,共享)


1
投票

谢谢大家!我设法让它发挥作用。我安装了最新的 Eclipse IDE 2020-09

版本:2020-09 (4.17.0) 版本号:20200910-1200

重新安装jdk15.0.1并将其放在Modulepath下而不是Classpath下,现在可以工作了。

enter image description here


0
投票

JavaFX 不再是 JDK 的一部分。因此,请将其视为正常的依赖关系。也像任何其他 Maven 库一样:

https://mvnrepository.com/artifact/org.openjfx

我正在使用 OpenJDK 11,这是我的 pom.xml 文件的示例:

https://pastebin.com/6hjDtaiw

javafx-maven-plugin
是获取平台特定的库(.dll for Windows,.so for linux ...)

javafx-controls
用于标签、按钮和其他 JavaFX UI 元素

并且不要直接启动您的应用程序类。否则你会得到以下错误:

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

只需编写一个额外的类来调用应用程序类的“main”方法。


0
投票

我知道这篇旧文章,如果有人仍然面临这个问题,请尝试遵循这些对我有用的解决方案之一。

1-> 将JavaFX和JavaFX SDK都放在模块路径下。

2-> 或者您可以在虚拟参数中添加此命令。

  --module-path "\path\to\javafx-sdk-15.0.1\lib" --add-modules JavaFX.controls,JavaFX.fxml
这里的模块路径是外部 JAR 文件的位置。 希望这对你有用。


0
投票

我自己和其他地方都看到了这个问题,并通过排除过程找到了解决方案。在配置中,launch.json 文件内:

{

    "type": "java",
    "name": "HelloWorld",
    "request": "launch",
    "vmArgs": "--module-path **\"**PATH TO\\javafx-sdk-21.0.2\\lib\\**\"** --add-modules javafx.controls,javafx.fxml",
    "mainClass": "HelloWorld",
    "projectName": "TestFolder"
},

注意路径周围的“”!如果“仍然存在,则应该是粗体。

对于每个附加文件,您必须手动添加 vmArgs,但这可行!

我将在其他地方发布此内容以解决类似的其他问题,希望它可以帮助其他遇到困难的人。


-1
投票

我尝试了上述所有解决方案,但没有任何效果,然后我只需创建 module-info.java 文件,我的程序就开始工作。 只需右键单击您的项目并转到>>配置>>创建 module-info.java

© www.soinside.com 2019 - 2024. All rights reserved.