我最近开始学习javafx,但现在我知道它从java 11开始被从核心JDK中移除。我似乎找不到编译javafx应用程序的方法。导入声明无法使用(我使用的是MVC设计模式)。有什么方法可以解决这个问题吗?我使用的是VS代码
从Java 9开始,JavaFX被移出了JDK,这样JavaFX的更新就不用等下一个JDK版本了(至少我记得是这样)。 当Ubuntu从JDK 8切换到JDK 11时,他们添加了一个新的包 "openjfx",提供了JavaFX库。
所以您有几个选择来使用JavaFX。
安装OpenJFX
sudo apt install openjfx libopenjfx-java
设置Gradle构建
如果你使用gradle来构建,你可以设置下载任何你想要的JavaFX版本。 按照以下说明进行操作 openjfx 来设置一个基本的gradle配置。 链接的页面有一个例子文件,你可以从它开始。
你也可以考虑使用Intellij Idea社区版IDE而不是VS Code。我认为VS Code是非常优秀的,并且已经使用了几年,包括JavaFX的开发。 我最近换成了Intellij,它为java开发提供的功能比VS Code高一筹。 另外它提供的是一个快件,所以安装起来很方便。
snap install intellij-idea-community --classic
那么,关于环境变量 我猜你是在Linux上,所以你有两种设置方式。
A) 为当前会话设置
B) 全局设置
方法A:打开终端,执行 export PATH_TO_FX=[absolute path to Javafx folder]/lib
. 这将为你的当前用户创建一个只适用于当前会话的变量--你必须在每次启动操作系统时执行它。
选项B:找到文件 /etc/profile
然后将其备份;然后打开它进行编辑,并加入 export PATH_TO_FX="[absolute path to Javafx folder]/lib"
行到它的最后。保存文件并重新启动系统。这样,这个变量就会被所有用户永久地保留下来。
最后,通过启动您的应用程序jar来测试Javafx的存在--。java -jar --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml your.jar
(或按文档中所示启动你的主类)。