当前位置: 首页 > 知识库问答 >
问题:

java-intellij在应用程序运行时找不到module-info.Java中说明的模块库

淳于鹏
2023-03-14

我的设置:

我遵循了JavaFX和IntelliJ->模块化的步骤。

我通过存储库将ikonli-core-12.2.0.jar、ikonli-javafx-12.2.0.jar和ikonli-carbonicons-pack-12.2.0.jar按此顺序添加到场景构建器中。在这里,它们工作得很好。

module project {

    requires javafx.controls;
    requires javafx.fxml;

    requires org.kordamp.ikonli.core;
    requires org.kordamp.ikonli.javafx;
    requires org.kordamp.ikonli.carbonicons;

    opens com.project to javafx.fxml;

    exports com.project;
}

我得库得图片:

问题:

.fxml文件中添加图标并单击“运行”时,会出现以下错误:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module org.kordamp.ikonli.javafx not found, required by project

我试过的解决办法:

  1. 通过文件->项目设置->库添加.jars

这似乎自动地将它们添加到modules->依赖项中,但即便如此,问题依然存在。

Error occurred during initialization of boot layer
java.lang.module.FindException: Module project not found

这会产生一个smiliar错误:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module /directory/path/to/file/ikonli-core-12.2.0.jar not found

第三:

--add-modules org.kordamp.ikonli.core,org.kordamp.ikonli.javafx,org.kordamp.ikonli.carbonicons

Error occurred during initialization of boot layer
java.lang.module.FindException: Module org.kordamp.ikonli.core not found

其他信息:

我添加了controlsfx.jar,方法与Ikonli.jars相同。它也会出现相同的错误。

正如官方javadoc中所述,它们都在适当的目录中有自己的module-info.class文件,但是modulefinder仍然抛出html" target="_blank">异常。

我还检查了我的project.iml文件,它们都有module-libraries和正确的目录。

我已经多次恢复了官方的Ikonli安装步骤,所有的一切都检查出来了。

但是,其中提到我需要需要javafx.base;在模块描述符中需要javafx.graphics;。不是真的,至少在我的例子中是这样的,因为当我向VM选项添加--show-module-resolution时,它显示它们加载良好,但即使我添加了它们,仍然会出现错误。

结束

很抱歉发了这么长的帖子,我没主意了,也不知道还能尝试什么。

共有1个答案

后焕
2023-03-14

这里的一条评论提到,他们会将.jar放在mods/production文件夹中。我也这么做了...而且奏效了。(°-°)

我想“来自IDE的模块化”并不符合IDE。

看来进行模块化的正确方法是使用Maven/Gradle。我会重建和Gradle一起去。

 类似资料:
  • 你好,我有一个问题,我的模块化Java FX应用程序。 首先,我使用Intellij向导创建了一个JavaFX项目。 我添加了Java FX库: 并且JavaFX模块会被识别。我的模块-info.java:

  • null null 所以当我在Intellij中运行项目时,它启动了,我可以访问主模块控制器中定义的所有URL。但不是子模块控制器中的...看起来只加载了主模块。 下面是我的父pom.xml: 这里是我的主模块pom.xml: null

  • 我正在使用一个在线编译器来运行这个简单的代码,但是它给出了一个运行时错误,“Could not find or load class main”没有其他语法错误。请提出解决方案。

  • 我正在学习JavaFx并尝试制作一个可重用的组件。该项目正在VSCode中开发。该项目非常简单,涉及启动器和可重用组件。我正在重构,当添加模块时,一切都停止了工作,我无法继续重构。 module-info中显示的错误是:< code>javafx.controls无法解析为模块。虽然很奇怪,但是如果我告诉Maven更新项目,在一些罕见的情况下,错误会告诉我模块是空的或者不存在。 源代码(实验分支)

  • 我的模块化JavaFX应用程序有问题。我创建了一个JavaFX项目,并添加了JavaFX库和JavaFX模块。但是,我不断收到以下错误消息: 完整设置的图像附于此: 编辑: 以下是所有错误消息: 我还添加了vm选项: 但是,我还是收到了这个错误消息。

  • 我刚刚在Intellij中设置了Scala(以及SDK和JDK) 文件- 创建了一个项目。 项目名称src下-- 我做错了什么。请帮忙