今天第一次写javafx遇到一些问题,全网搜索不到为什么。最后在官方的英文指导里面,艰难解决。记下来
使用intellij 就是idea 新建了一个javafx项目,但是运行呢,
提示找不到或无法加载main类
于是我换jdk,这鼓捣,那鼓捣,反正是提示找不到javafx包,报错 找不到javafx. 包
最后多方了解,javafx开始内置于jdk8(虽然我用jdk8 也是提示找不到),去oracle.com 一看jdk8 确实提供了 javafx文档,但是最新的jdk14 没有。据说是在jdk11,javafx就被单独拎出来了。于是,需要使用javafx呢,就需要去https://openjfx.cn/ 下载javafx包,然后设置环境路径。好了开始吧。
https://gluonhq.com/products/javafx/ 在这里挑选合适版本,然后解压到一个目录。在bash环境变量里面添加变量
编辑 /etc/profile 里面添加
export PATH_TO_FX=path/to/javafx-sdk-13/lib
然后我使用的是idea教育版。
创建一个库
转至File -> Project Structure -> Libraries将JavaFX 13 SDK作为库添加到项目中。指向JavaFX SDK 的lib文件夹。
创建一个库
转至File -> Project Structure -> Libraries将JavaFX 13 SDK作为库添加到项目中。指向libJavaFX SDK 的文件夹。
同时,您可以定义一个全局变量,该变量可以在将来的项目中使用。转至 Preferences (File -> Settings) -> Appearance & Behavior -> Path Variables,并将变量名称定义为PATH_TO_FX,然后浏览至JavaFX SDK的lib文件夹以设置其值,然后单击Apply。
到现在可以编译运行,但是可能会报错。
我到了这里就报错,需要添加模块
由IntelliJ创建的默认项目使用FXML,因此javafx.fxml 与一起是必需的javafx.controls。如果您的项目使用其他模块,则还需要添加它们。
在将VM选项设置为以下选项时,可以引用全局变量:
请单击Run -> Edit Configurations...并添加以下VM选项:
--module-path ${PATH_TO_FX} --add-modules javafx.controls,javafx.fxml
至此,您就可以成功编译运行了。