java - JavaFX 似乎不适用于 IntellJ 和 MS/VS 代码中的 Java。未找到导入
问题描述
我似乎无法让 javaFX 在我的系统上运行。我需要它用于学校项目。
我对此事进行了一些研究并得出以下结论:
当前的 JDK 版本不再标准地包含 javaFX。所以我需要手动下载并安装它。我遇到了这个网站:https : //openjfx.io/openjfx-docs/#introduction,它指示我安装 Java11 OpenJDK,我相信它包括 JavaFX。
我已经从这个链接下载了 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 网站上的类似 在 此处输入图像描述
该网站然后指示从该来源下载适当的 JavaFX 运行时:https ://gluonhq.com/products/javafx/ 它说下载该文件并将其解压缩到“所需”位置。我假设是这样的:/Library/Java/JavaVirtualMachines/ 所以我将提取的 openjfx-11_osx-x64_bin-sdk.zip 移动到该位置。最后它指示我添加以下环境变量:export 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
解决方案
您可以通过切换到基于 Maven 的项目来简化整个过程。maven 项目在一个名为的文件中包含所有构建和依赖信息,pom.xml
并将简化所有其他依赖问题。
使用 maven 开始使用 JavaFX 11中详细介绍了 这些步骤 Intellij 的步骤也在同一站点上进行了详细说明,但它们有些复杂。Netbeans 10 可以将任何 maven 项目作为原生项目打开,所以我将详细介绍它的步骤。
创建一个新项目 > Maven > Java Application In project tab > Project files open 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>
上面的代码片段取自HelloFX github 源代码。您可以下载该 repo 并在 Netbeans 10 中打开该文件夹,您将拥有完整的项目功能。
推荐阅读
- arrays - 使用数组和指针练习
- c - 在数组中找到最接近 0 的负数(log n 复杂度)
- javascript - 如何在提交表单之前执行 jQuery 代码
- python - 最大和小于 K 的 10 个大小的子集
- python - PULP - 如何获取 CPLEX 求解器状态而不是 LpStatus 状态?
- python - 将 numpy 3d 数组保存为原始数组
- php - Laravel 集合从每个函数中检索变量结果
- api - 如何区分 url 中的端点、路径、参数?
- python - 使用python将CSV文件中特定列中的“/”替换为“_”
- reactjs - TypeError:无法读取 React-hooks 中未定义的属性“toLowerCase”