Ale*_*hin 10 java eclipse javafx javafx-11
我在JavaFX上遇到了一些麻烦.我想开始创建应用程序,桌面或移动,至少是一些东西.所以我发现我可以使用JavaFX库.但据我的理解,它被排除在JDK 9.实际上,我在Ubuntu 18(尽管Eclipse中写道:我有JavaSE的10环境,这正是我也有点糊涂了)使用的OpenJDK 11,我安装的OpenJFX使用sudo apt install openjfx,我无法使Eclipse与JavaFX一起使用.
我不确定是否有任何意义不使用包含JavaFX的JDK 8,但无论如何,如何在Eclipse中使用JavaFX?
Ita*_*iha 16
您的帖子中有多个要点需要澄清.我将尝试在不同的要点中回答它们:
但据我所知,它(JavaFX)被排除在JDK 9之外.
JavaFX将从JDK 11开始与Oracle JDK分离.我强调Oracle JDK,因为JavaFX从未成为OpenJDK的一部分.甚至在OpenJDK 8中也没有.
我实际上在Ubuntu 18上使用OpenJDK 11(虽然eclipse写道我有JavaSE 10环境,这也是我有点困惑的地方)
对于Eclipse中的Java 11支持,您需要安装 Java 11支持Eclipse Photon插件.
以下是有关如何在Eclipse中运行Java 11应用程序的一些示例
我使用openjfx安装
sudo apt install openjfx,我无法使用JavaFX进行eclipse.我不确定是否有任何意义不使用包含JavaFX的JDK 8,但无论如何,我如何在eclipse中使用JavaFX?
由于OpenJDK 11或Oracle JDK 11不会与JavaFX捆绑在一起,因此最好从此处或此处下载JavaFX SDK 并将其加载到IDE中.
如果您习惯于构建工具,则可以直接使用Maven Central中提供的JavaFX运行时jar.
有关如何在OpenJDK 11上运行JavaFX 11的教程,您可以按照:
在撰写本文时,您需要Eclipse 4.9M3才能使用JavaFX 11.
一旦你有了eclipse,JDK 11和JavaFX 11 SDK,你可以选择创建:
module-info.java)基于模块的项目
创建Java项目并将Java FX 11 SDK中的JavaFX jar添加到项目的模块路径中.
创建一个module.info并声明其javafx.controls模块的依赖关系.javafx11是包含Java文件的包的名称.
module javafx11 {
requires javafx.controls;
exports javafx11;
}
Run Code Online (Sandbox Code Playgroud)
运行程序\ o /
非基于模块的项目
创建一个Java项目,并从Java FX 11 SDK添加JavaFX的罐子或者模块路径或项目的类路径.
将以下JVM args添加到项目的运行配置中:
--module-path=path-to-javafx-skd/lib --add-modules=javafx.controls
Run Code Online (Sandbox Code Playgroud)
运行程序\ o /
要最容易使用JavaFX,请使用Java 8品牌的Java 8版本,其中捆绑了JavaFX 8并且可以轻松使用.
有关技术详细信息,请参阅在JRE 8中使用JavaFX.查看网页的链接和相关部分,了解许多相关的帖子.
Java平台正在进行彻底的重组,称为模块化.
以前,Java SE(标准版)是软件的一大块,不断增长,越来越多的软件被添加.没有一个应用程序曾经使用过它.
我们决定将Java SE分解为许多单独的块,以便正式定义为"模块".一个主要的好处是,应用程序可以与仅由实际需要的模块组成的Java SE运行时捆绑在一起,省略未使用的模块.请参阅jlink工具.
作为这种模块化的副产品,一些较老的和不太受欢迎的部分如CORBA正在被丢弃,不再作为Java的标准部分携带(尽管如果他们这样决定就提供给其他方提供).类似地,一些Java EE相关模块将从Java SE中删除并转交给Jakarta EE项目,逻辑上是一个更合适的家庭.请参阅JEP 320:删除Java EE和CORBA模块.
模块化和重组的过程是一项长达数年的持续努力.在Java 9和Java 10中已经完成了很多工作.最后一些步骤是在Java 11中完成的.
Java 11中采用的其中一个步骤是停止将JavaFX与Java SE捆绑在一起.看到:
于是开始使用JavaFX开发,现在将最简单的,如果使用Java 8完成的JavaFX库被捆绑在与Java 8你不必了解模块化,也不需要你搏斗的IDE(如Eclipse)和项目设置识别模块.如果您没有迫切需要使用最新版本的Java或JavaFX,请坚持使用8,直到模块化过程和工具得到平滑,可能是明年2019年.
如果您坚持使用Java 11,则需要了解:
这些要点太多了,无法在这里讨论,并且已经在Stack Overflow的许多其他问题中有所涉及.此外,Java 11尚未正式发布.
也许这篇文章将有助于,如何在JDK 11上使用JavaFX创建项目.
要了解有关Java模块化的更多信息,请阅读Nicolai Parlog撰写的博客和书籍Java Module System.