首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IntelliJ无法识别带有OpenJDK 11的JavaFX 11

IntelliJ无法识别带有OpenJDK 11的JavaFX 11
EN

Stack Overflow用户
提问于 2018-09-23 23:25:56
回答 6查看 130.1K关注 0票数 93

我在让IntellJ识别JavaFX包时遇到了问题。对于新的JavaFX项目和OpenJDK 11,当尝试构建该项目时,IntelliJ无法识别JavaFX包。

我已经从Maven导入了openjfx:javafx-base-11

我已经研究过其他问题,解决方案似乎包括检查字节码是否处于正确的级别(我的是),以及项目语言是否正确(我的是)。

有谁有什么想法吗?

编辑:

错误:

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-09-24 04:49:33

正如评论中提到的,Starting Guide是从Java11和JavaFX 11开始的地方。

要像Java 11之前那样工作,关键是要理解这一点:

  • JavaFX 11不再是JDK的一部分
  • 您可以通过不同的方式获取它,无论是作为SDK还是作为常规依赖项,即使您的项目不是模块化的,也需要将其包含在项目的模块路径中。

JavaFX项目

如果您在IntelliJ中创建了一个常规的JavaFX默认项目(没有Maven或Gradle),我建议您从here下载SDK。请注意,也有jmod,但对于非模块化项目,SDK是首选。

以下是运行默认项目的简单步骤:

  1. 创建一个JavaFX项目并设置JDK11(指向您本地的Java11版本)
  2. 将JavaFX 11SDK添加为一个库。网址可以是类似于/Users/<user>/Downloads/javafx-sdk-11/lib/的内容。执行此操作后,您将注意到现在可以在编辑器中识别JavaFX类。

  1. 在运行默认项目之前,您只需将以下内容添加到VM选项:

--module-path /Users/<user>/Downloads/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.fxml

  • Run

Maven

如果您使用Maven构建项目,请执行以下步骤:

使用JavaJavaJDK11(指向您本地的archetype

  • Set 11版本)

  • 创建一个JavaFX项目,并添加Java11依赖项。

org.openjfx javafx-controls 11 org.openjfx javafx-fxml 11

执行此操作后,您将注意到JavaFX类现在可以在编辑器中识别。

您将注意到,Maven为您管理所需的依赖项:它将为javafx.controls添加javafx.base和javafx.graphics,但最重要的是,它将根据您的平台添加所需的分类器。以我为例,麦克。

这就是jars org.openjfx:javafx-controls:11为空的原因,因为有三种可能的分类器(windows、linux和mac平台),它们包含所有的类和本机实现。

如果您仍然想转到.m2存储库并从那里手动获取依赖项,请确保您选择了正确的依赖项(例如.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-mac.jar)

here.

  • Run

  • 中的maven插件替换默认的maven插件,它应该可以工作。

类似的工作也适用于Gradle项目,如详细here中所述。

编辑

上面提到的入门指南包含更新的documentation和IntelliJ示例项目:

对于不带Maven/Gradle的projects.

票数 155
EN

Stack Overflow用户

发布于 2019-04-25 20:20:42

JavaFX不再是JDK11的一部分的问题。下面的解决方案使用IntelliJ (还没有尝试过NetBeans):

  1. 将JavaFX全局库添加为依赖项:

设置->项目结构->模块。在模块中,转到Dependencies选项卡,然后单击add "+“符号-> Library -> JavaFX ->从列表中选择Java,然后单击Add Selected,然后应用设置。

  • 右键单击JavaFX项目中的源文件(src),然后创建一个新的模块-info.java文件。在文件中编写以下代码:

模块YourProjectName {需要javafx.fxml;需要javafx.controls;需要javafx.graphics;打开示例;}

我向您保证,这两个步骤将解决您使用JavaFX的所有问题。

参考:由学习编程频道制作的You Tube教程,将在短短5分钟内解释上述所有细节。我也推荐看它来解决你的问题:https://www.youtube.com/watch?v=WtOgoomDewo

票数 15
EN

Stack Overflow用户

发布于 2019-04-26 15:56:57

以上这些对我来说都不起作用。我花了太多的时间来清除出现的其他错误。我发现这是最简单也是最好的方法。

This works for getting JavaFx on Jdk 11, 12 & on OpenJdk12 too!

  • 视频向您展示了JavaFx Sdk download
  • How to set it as a Global Library
  • Set

(我更喜欢下面的库)。

代码语言:javascript
运行
复制
module thisIsTheNameOfYourProject {
    requires javafx.fxml;
    requires javafx.controls;
    requires javafx.graphics;
    opens sample;
}

整个过程只用了5分钟!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52467561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档