这个
startup()
方法是从非公共类升级的方法之一
PlatformImpl
到公共API
Platform
类。现已在
API documentation
.
因此,Java 9中的等效调用是
Platform.startup(() -> { });
请注意,这种方法的用例非常罕见,API文档中详细强调了这一点:
一般来说,没有必要显式调用此方法,因为它是根据大多数JavaFX应用程序的构建方式进行调用的。
...
如前所述,JavaFX应用程序线程通常会自动启动。重要的是,仅当JavaFX运行时尚未初始化时才调用此方法。自动启动JavaFX运行时的情况包括:
适用于扩展
Application
,并使用Java启动器或
应用
类来启动应用程序,FX运行时由启动器在
应用
类已加载。
-
对于使用
JFXPanel
要显示FX内容,当第一个
JFX面板
实例已构建。
-
对于使用
FXCanvas
要显示FX内容,当第一个
FXCanvas
实例已构建。
如果应用程序不遵循这些常见方法中的任何一种,那么开发人员就有责任通过调用此启动方法手动启动JavaFX运行时。
当JavaFX运行时已经运行时调用此方法将导致
IllegalStateException
被抛出-只有请求JavaFX运行时启动一次才有效。
因此,当您正在进行更新应用程序以使其与Java 9兼容所需的更改时,您可能需要仔细考虑是否需要调用
启动()
完全也许有一种更标准、更健壮的方法来启动JavaFX应用程序。