使用 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。
添加回答
举报
0/150
提交
取消