Java包地狱试图在MacOS上使用JavaFX+;IntelliJ

Java包地狱试图在MacOS上使用JavaFX+;IntelliJ,java,package-management,maven,3d,Java,Package Management,Maven,3d,我正在尝试开发一个需要在3D空间中查看/操作模型的应用程序,JavaFX似乎是一个明显的候选。如果有人能提出更好的选择,我会很高兴听到 我使用的是运行在MacOS Catalina 10.15.4上的IntelliJ CE 2019.3.3和Java 14,据我所知,Java 14是最新版本。自相矛盾的是,考虑到JavaFX的曲折历史及其与主流Java(谢谢Oracle)的关系,我担心使用最新的JDK可能是我所有问题的根源 我下载了一个简单的应用程序,在一个场景中添加了一些简单的形状,我成功地运

我正在尝试开发一个需要在3D空间中查看/操作模型的应用程序,JavaFX似乎是一个明显的候选。如果有人能提出更好的选择,我会很高兴听到

我使用的是运行在MacOS Catalina 10.15.4上的IntelliJ CE 2019.3.3和Java 14,据我所知,Java 14是最新版本。自相矛盾的是,考虑到JavaFX的曲折历史及其与主流Java(谢谢Oracle)的关系,我担心使用最新的JDK可能是我所有问题的根源

我下载了一个简单的应用程序,在一个场景中添加了一些简单的形状,我成功地运行了这个程序。通过向pom.xml添加两个依赖项,我将JavaFX库添加到了我的项目中:

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

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-graphics</artifactId>
    <version>11</version>
</dependency>
不幸的是,当我将一个新类导入到我的应用程序中时,我发现这个错误的变体非常不可预测(而且很难修复)。我已经没有了灵感和耐心,也没有了可以添加到VM选项列表中的模块

在我的下载目录和我的本地.m2Mavenrepository这两个不同的位置使用JavaFX库也让人觉得很俗气

有人能为我的痛苦提出更好的解决方案吗?或者是一个替代的3D软件包,或者是一种更好的管理JavaFX库的方法


编辑我的问题以显示我取得的进展(希望我能以另一种方式添加更多细节)。

好吧,在舔了舔我的伤口之后,我决定喝下Maven Kool aid,一直喝到杯底

我首先创建了一个Maven项目,基于。我通过从网站上的链接找到了这个。完成此操作后,我就能够使用mvncile编译代码,然后使用mvnjavafx:run运行它。结果=成功

我欣喜若狂,然后决定将该项目导入IntelliJ——结果喜忧参半。我不得不修改“run”配置,使用mvn插件(见上文),这部分似乎可以工作


更新#2:我现在已将IDE“run configuration”命令增强为mvn compile javafx:run,这将强制代码在运行之前重新编译(如果需要重新编译,maven就是这样)


祝我好运-我会继续更新这篇文章。

我在尝试使用
添加模块时遇到了类似的困难

因此,我创建了这个文件:

src/module-info.java
内容如下:

module MyProject{
    requires javafx.controls;
}

您可以在这里找到一个完整的工作示例:

我在尝试使用
--addmodules
参数时遇到了类似的困难

因此,我创建了这个文件:

src/module-info.java
内容如下:

module MyProject{
    requires javafx.controls;
}

您可以在这里找到一个完整的工作示例:

我将安装OpenJDK 11而不是OpenJDK 14,以便与您安装的JavaFX版本相匹配。请确保更新您的生成环境。@SecurityHound为什么不更新JavaFX14呢?好吧,我猜11是LTS。@Kayaman-我建议
OpenJDK 11
,因为作者安装了
JavaFX11
,而不是
JavaFX14
,我不知道从哪里开始在MacOSShort上安装
JavaFX14
。我的回答是:让版本匹配没有什么区别。那些体质脆弱的人现在应该把目光移开……那些体质脆弱的人现在应该把目光移开。。。(当,我如何在不结束注释的情况下输入新行??)。详细回答:我首先尝试将JavaFX版本修改为14,只需编辑pom.xml。这是一个微不足道的变化,似乎更新了库,但问题没有改变。然后我返回到v11并尝试安装java11。首先使用brew=fail,然后使用_sdkman=fail;最后,我通过从Oracle站点下载dmg安装了sdk11。然而,在将IntelliJ切换为使用此选项后,我对该问题没有任何改变。Sob…我会安装OpenJDK 11而不是OpenJDK 14,以匹配您安装的JavaFX版本。请确保更新您的生成环境。@SecurityHound为什么不更新JavaFX14呢?好吧,我猜11是LTS。@Kayaman-我建议
OpenJDK 11
,因为作者安装了
JavaFX11
,而不是
JavaFX14
,我不知道从哪里开始在MacOSShort上安装
JavaFX14
。我的回答是:让版本匹配没有什么区别。那些体质脆弱的人现在应该把目光移开……那些体质脆弱的人现在应该把目光移开。。。(当,我如何在不结束注释的情况下输入新行??)。详细回答:我首先尝试将JavaFX版本修改为14,只需编辑pom.xml。这是一个微不足道的变化,似乎更新了库,但问题没有改变。然后我返回到v11并尝试安装java11。首先使用brew=fail,然后使用_sdkman=fail;最后,我通过从Oracle站点下载dmg安装了sdk11。然而,在将IntelliJ切换为使用此选项后,我对该问题没有任何改变。呜咽。。。