【问题标题】:JavaFX does not seem to work with Java from IntellJ and MS/VS code. Imports not foundJavaFX 似乎不适用于 IntelliJ 和 MS/VS 代码中的 Java。未找到导入
【发布时间】:2019-01-19 13:18:33
【问题描述】:

我似乎无法让 javaFX 在我的系统上运行。我需要它用于学校项目。

我对这个问题做了一些研究,得出以下结论:

当前的 JDK 版本不再标准地包含 javaFX。 所以我需要手动下载并安装它。 我偶然发现了这个网站:https://openjfx.io/openjfx-docs/#introduction 它指示我安装我认为包含 JavaFX 的 Java11 OpenJDK。

我已经从这个链接下载了 macOS 版本:http://jdk.java.net/11/ 解压它。并手动将其复制到此位置:“/Library/Java/JavaVirtualMachines/(文件夹本身称为 jdk-11.0.2.jdk

openjfx 网站指示我接下来设置 HOME 环境变量。它包括一个关于如何做到这一点的教程。然后我按照指示成功更改了我的 JAVA_HOME 变量。 (教程链接:https://www.baeldung.com/java-home-on-windows-7-8-10-mac-os-x-linux

我的 java 版本现在看起来类似于 openjfx 网站上的那个 enter image description here

然后该网站指示从该源下载适当的 JavaFX 运行时:https://gluonhq.com/products/javafx/ 它说要下载该文件并将其解压缩到“所需”位置。我会假设是这样的:/Library/Java/JavaVirtualMachines/ 所以我将提取的 openjfx-11_osx-x64_bin-sdk.zip 移动到该位置。 最后它指示我添加以下环境变量: 导出 PATH_TO_FX=path/to/javafx-sdk-11.0.1/lib

我假设是我的 bash 个人资料,所以我这样做了。我用实际路径替换了 path/to/ 部分。这将是:export PATH_TO_FX=/Library/Java/JavaVirtualMachines/javafx-sdk1.3/lib

(zip 确实包含一个带有 javafx.jar 文件的 lib 文件夹)

此时,我的 bash 配置文件如下所示: Bash profile screenshot

所以基本上 openjfx 网站现在说我应该可以从命令行运行 javafx 11 应用程序。使用指定的命令。

所以用这个长命令 javac --module-path /Library/Java/JavaVirtualMachines/javafx-sdk-11.0.2/lib --add-modules=javafx.controls HelloFx.java

我能够成功运行导入 javaFx 的 java 文件。 但这太麻烦了。

我怀疑我应该设置我的环境/路径变量,以便我可以在 IntelliJ 中使用 JavaFX,或者最好在 MS Visual Studio 代码中使用。

有谁知道配置我的系统的简洁直接的方法,以便我可以使用 Vistual Studio Code 或 IntellJ 中的 Java 和 JavaFX

【问题讨论】:

  • 我在 MacOS Mojave 10.14 上。
  • 有关将 JavaFX 11 与主要 Java IDE(不是 Visual Studio Code)结合使用 Gradle、Maven 或无构建工具的信息,请参阅Getting Started with JavaFX 11

标签: java macos intellij-idea javafx visual-studio-code


【解决方案1】:

您可以通过切换到基于 Maven 的项目来简化整个过程。 maven 项目在一个名为pom.xml 的文件中包含所有构建和依赖信息,并将简化所有其他依赖问题。

步骤详见Getting started with JavaFX 11 with maven Intellij 的步骤也很详细on the same site,但它们有些复杂。 Netbeans 10 可以将任何 maven 项目作为原生项目打开,所以我将详细说明它的步骤。

创建一个新项目 > Maven > Java 应用程序 在项目选项卡 > 项目文件中打开 pom.xml。在project 标签下添加以下行。

<dependencies>
<dependency>
  <groupId>org.openjfx</groupId>
  <artifactId>javafx-controls</artifactId>
  <version>11</version>
</dependency>
<dependency>
  <groupId>org.openjfx</groupId>
  <artifactId>javafx-fxml</artifactId>
  <version>11</version>
</dependency>

上面的 sn-p 取自 HelloFX github source。您可以下载该 repo 并在 Netbeans 10 中打开该文件夹,您将拥有完整的项目功能。

【讨论】:

  • 我用 IntellJ 研究了一个 Maven 项目。我为 javaFx 使用了 pom.xml,现在它似乎完美无缺。非常感谢!
猜你喜欢
  • 2022-06-13
  • 2019-08-07
  • 1970-01-01
  • 2021-04-30
  • 2017-12-02
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
相关资源
最近更新 更多