为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英3389331 2021-12-10 14:45:59
使用 JavaFX 时,我们会覆盖启动应用程序的方法 start。@Override public void start(Stage primaryStage ) {}我发现 java 编译器知道 start 是没有 main 方法时的起点。一个主要的方法似乎是不必要的。是否仍有理由继续实施 main ?是否还有功能原因仍然实现主要方法?
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

注意:我的回答假设 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


查看完整回答
反对 回复 2021-12-10
  • 1 回答
  • 0 关注
  • 240 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信