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

javafx。base读取包javafx。豆

冀阳文
2023-03-14

我使用OpenJDK 11和OpenJFX 11.0.1与Gradle在IntelliJ IDEA为我的项目。当我使用javafx.base模块时,IntelliJ IDEA在第1行(项目模块声明)报告了一个错误,说我没有在模块需求中包含javafx.beans模块(bean是javafx.base模块中的一个包)。Gradle jar任务执行时没有任何错误或警告,因此此错误可能与IntelliJ IDEA有关。

错误消息:"模块'hr.caellian.lunar'读取包'javafx.beans'javafx.base'和'javafx.base'"如果我删除'javafx.base'要求,'javafx.base'从上述错误被替换为下一个javafx模块。

我还在javafx模块需求行收到警告:“模组引用不明确:javafx.base”表示“javafx”。每个javafx模块的“base”等。

这是我的模块信息。java文件:

module hr.caellian.lunar {
    requires java.base;
    requires kotlin.stdlib;

    requires javafx.base;
    requires javafx.controls;
    requires javafx.fxml;
    opens hr.caellian.lunar.gui to javafx.graphics;

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

    requires com.fasterxml.jackson.core;
    requires com.fasterxml.jackson.databind;
    requires com.fasterxml.jackson.dataformat.yaml;

    requires arglib;
    requires org.apache.bcel;
}

现在我在网上寻找解决方案至少有半个小时了。我所发现的只是一个网站,上面说只有我已经包含的模块是JFX所必需的(我想这是JavaFX9所必需的)。

我重新下载了JavaFX模块,以查看是否遗漏了复制内容,但我没有-JavaFX。beans模块不存在。

java--list-模块不会列出任何javafx模块,尽管我认为它应该只列出jdk模块,OpenJFX不再包含在OpenJDK中。

我将OpenJFX SDK安装到JDK文件夹中(lib文件复制到lib文件夹,合法文件相同),手动从IDEA中JDK11的lib文件夹中添加javafx jar依赖文件。我还将所有jmod文件添加到JDK11的jmod文件夹中。

JavaFX模块是否可能有错误的模块信息。java文件或类似的东西?这是IntelliJ的想法错误吗?

共有1个答案

海雪松
2023-03-14

由于@nullpoint er的评论,设法解决了这个问题。

问题是我已经将文件从JavaFX SDK复制到我的JDK 11类路径和项目库文件夹。

如果您看到此错误时出现了相同的警告,这意味着您的IntelliJ项目JDK类路径和构建中可能存在重复的模块JAR(可能直接在将来的模块中)。gradle(或lib文件夹)。

如何修复:我从项目结构中的IntelliJ IDEA中的JDK11类路径中删除了OpenJFX SDK罐。当我从项目库文件夹中删除JFX SDK jars时,我读取了它们。gradle将lib文件夹中的每个jar添加为:

implementation fileTree(dir: 'lib', include: '**/*.jar')

另外,不要将JavaFX直接安装到JDK文件夹中。如果不保留不必要的文件,就不可能更新任何一个文件,如果您想删除它,您将永远无法找到所有要删除的JFX文件,JFX src。zip取代了jdksrc。在lib文件夹中压缩。他们注定是分开的。

 类似资料:
  • 标题中的错误是我模块信息中的错误。JAVA我是Java新手,所以我希望在你给出答案时我能理解你的答案。我发现这里的其他问题也提出了同样的问题,他们可能有答案,我只是不知道如何将其应用到我的情况中。 javafx。base读取包javafx。豆 模块化java项目(IntelliJ IDEA):模块的com。测试“读取包”javax。xml。绑定“来自两个”java。xml。绑定“和”java。xm

  • 通过将以下代码片段复制到构建中,我使用netbeans创建了javafx独立应用程序。xml文件 我有x64位版本的jdk环境,所以它创建了只在x64位版本的窗口或操作系统中运行的应用程序。有人能告诉我应该如何改变部署方法,使应用程序在x86位系统上运行。默认情况下netbean占用了64位版本的jdk环境

  • 我使用maven和OpenJDK 1.8(pom中的相关部分)打包了一个JavaFX应用程序。xml: 现在重要的是,这曾经有效。我知道这一点,因为我专门在打包最终起作用的地方进行了git提交。经过一天左右的时间和像这样的多次构建(我不知道发生了什么变化),我无法再启动jar,因为以下错误: 当我查看Jar的内容时,我可以看到,除了JavaFX类之外,所有依赖项都被专门包括在内。 我所尝试的: 使

  • 我是JavaFx新手。我设计了一个table thorugh scenebuilder,其中第1列有一个按钮,第2列有一个复选框。单击按钮时,我希望获得checkbox属性的内容。但问题是,我的输出总是错误的。这是我的密码 模型JAVA 在我的控制器类中,我按照以下方式设计了initialize()方法 控制器。JAVA 这里是

  • 我有一个JavaFX应用程序,它可以与服务器通信并从服务器获取数据。接收到的数据被放入ObservableList并显示在TableView中。 与服务器的通信在它自己的线程中运行,当调用观测ist.add它会触发一个IllegalStateException(抱怨不是事件线程/不是JavaFX线程) 我已经找到了一个类似问题的以下解决方案,但我不确定如何采用该解决方案,因为在我的情况下,与服务器

  • 最近Sun公司推出了JavaFX框架,使用它可以利用JavaFX编程语言来开发富互联网应用程序(RIA)。这个新开发组件有许多 令人惊喜的地方。它的功能非常丰富,对于Java开发者来说,它的类Java语法可以让人们非常轻松的动手开发富互联网应用程序。但是它面临两个重量级的 竞争对手,Adobe和微软,它们分别推出了Flex/AIR和Silverlight,来帮助程序员开发富互联网程序,它们不仅更加