java.lang.module.FindException:找不到模块

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

我必须说我对Java不太熟悉,我正在为我的大学课程做作业。

我想使用 JavaFX 和 SceneBuilder 制作一个桌面应用程序,我正在 YouTube 上使用本教程:https://www.youtube.com/watch?v=DH3dWzmkT5Y

一切正常,直到 17:25 他创建了 module-info.java 文件

module HotelBookingSystemTest1 {
    requires javafx.graphics;
    requires javafx.fxml;
    requires javafx.controls;
    requires java.sql;
    requires mysql.connector.java;

    opens sample;
}

我在我的项目中做了同样的事情,但运行后我收到此错误:

/home/prem/.jdks/openjdk-15.0.2/bin/java --module-path /home/prem/Downloads/javafx-sdk-16/lib --add-modules javafx.controls,javafx.fxml -Djava.library.path=/home/prem/Downloads/javafx-sdk-16/lib -javaagent:/snap/intellij-idea-community/289/lib/idea_rt.jar=44433:/snap/intellij-idea-community/289/bin -Dfile.encoding=UTF-8 -m HotelBookingSystemTest1/sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module HotelBookingSystemTest1 not found

Process finished with exit code 1

我很确定我将文件放在正确的位置,这是我的项目目录树:

有人可以帮助我修复该错误并解释为什么会发生这种情况吗? 谢谢!

java javafx
4个回答
4
投票

您收到该错误是因为您没有将其路径包含在虚拟机选项中。您所要做的就是找出您的代码输出到的位置,并将该路径添加到任何现有的路径中,例如这个:

--module-path "<your-path>" --add-modules javafx.controls,javafx.fxml

看起来你的项目的输出目录是“out”(很可能在生产中),但你总是可以通过转到文件 - >项目结构 - >项目 - >项目编译器输出来仔细检查这一点,然后找出你的模块在哪里从那里找到(在您的情况下,您将寻找 HotelBookingSystemTest1)。复制其地址并将其添加到上面的代码后,它应该看起来像这样:

--module-path "<your-path>;<copied-address>" --add-modules javafx.controls,javafx.fxml

这是我的参考路径之一,尽管在本例中我的输出目录是“classes”:

--module-path "C:\Program Files (x86)\JavaFX\javafx-sdk-16\lib;C:\Users\ethan\Documents\Code\GeneralPlanner\classes\production" --add-modules javafx.controls,javafx.fxml

还要确保运行配置和模块设置中的 SDK 相同。如果它给你一个关于 sql 连接器或任何其他未找到的模块的错误,请务必将它们的路径也添加到现有的路径中(与分号的方式相同)。


1
投票

为了补充之前的答案,您可以按照在项目结构框架中的“文件 -> 项目结构 -> 项目 -> 项目编译器输出”中找到的路径,在那里您可以通过右键单击来复制模块路径模块名称 -> 复制路径。

然后您可以单击“运行”->“编辑配置”找到 VM 选项。


0
投票

对于任何使用maven遇到此错误的人,只需将模块信息文件移动到您的源目录中,对于maven项目来说,通常是“src/main/java”,或者如果它不同,请将您的模块信息文件从项目目录移动到新的源目录它应该有效


0
投票

要在 Eclipse IDE 中配置项目中的构建路径,请按照以下步骤操作:

  1. 在项目资源管理器或导航器视图中右键单击您的项目。
  2. 从上下文菜单中,选择“构建路径”,然后选择“配置构建路径”。
  3. 在打开的“构建路径”对话框中,导航到“库”选项卡。
  4. 从列表中选择“JRE System Library”,然后单击“Remove”按钮将其从构建路径中删除。
  5. 接下来,单击“模块路径”选项卡。
  6. 单击“添加库...”按钮。
  7. 在“添加库”对话框中,选择“JRE System Library”,然后单击“下一步”。
  8. 选择合适的“执行环境”并点击“完成”。
  9. 最后,单击“应用并关闭”保存更改。

通过执行以下步骤,您可以有效管理项目的构建路径配置

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