在 JavaFX 中使用 `start` 方法时是否不需要 main?

使用 JavaFX 时,我们会覆盖启动应用程序的方法 start。

@Override
public void start(Stage primaryStage ) {}

我发现 java 编译器知道 start 是没有 main 方法时的起点。一个主要的方法似乎是不必要的。是否仍有理由继续实施 main ?

是否还有功能原因仍然实现主要方法?


慕桂英3389331
浏览 241回答 1
1回答

千巷猫影

注意:我的回答假设 OpenJDK/OracleJDK。我不知道其他供应商的行为是否相同。其他人引用的文档侧重于不再存在的 JavaFX Packager 工具1。值得注意的是,该工具似乎不是必需的(至少对于 Java 10 和 11)。唯一需要的是 JavaFX 库存在并且指定的主类扩展Application;那么main无论代码如何组装,您都不需要该方法。是否还有功能原因仍然实现主要方法?在普通的 JavaFX 应用程序中,我会说不。几乎任何你想做的初始化main都可以在里面完成Application.init。您还可以通过Application.getParameters.PS 最重要的问题为什么编译器接受 start 作为起点.. 反对我的编程神经质有关JavaFX(至少对于 10 和 11)应用程序的内部启动程序的详细信息,请参阅我的回答。此外,编译器不“接受开始作为起点”。编译器只是编译代码并看到start——并且main——与任何其他方法一样。它是搜索main和调用它的运行时。也就是说,链接的答案涵盖了start(以及一般的 JavaFX 应用程序)如何获得特殊待遇。1. 打包工具在 Java 11 中被删除。但是,有一个可能的替代品:jpackager。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java