如何在Eclipse中使用JavaFX 11?

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的教程,您可以按照:

JavaFX 11和Eclipse

在撰写本文时,您需要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 /


Bas*_*que 7

TL;博士

要最容易使用JavaFX,请使用Java 8品牌的Java 8版本,其中捆绑了JavaFX 8并且可以轻松使用.

有关技术详细信息,请参阅在JRE 8中使用JavaFX.查看网页的链接相关部分,了解许多相关的帖子.

Java模块化

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,则需要了解:

  • 一般是Java模块化,包括module-info.java文件.
  • 将IDE(Eclipse等)和其他工具更新到支持模块化和Java 11的更高版本.
  • 在构建工具中配置模块,例如Maven或Gradle
  • 在IDE中配置模块,例如Eclipse
  • 下载JavaFX模块,或使用Maven等依赖管理器来执行此操作

这些要点太多了,无法在这里讨论,并且已经在Stack Overflow的许多其他问题中有所涉及.此外,Java 11尚未正式发布.

也许这篇文章将有助于,如何在JDK 11上使用JavaFX创建项目.

要了解有关Java模块化的更多信息,请阅读Nicolai Parlog撰写的博客和书籍Java Module System.