在JavaFX中使用'start'方法时是否不需要main?
使用JavaFX时,我们重写启动应用程序的start方法在JavaFX中使用'start'方法时是否不需要main?,java,javafx,main,Java,Javafx,Main,使用JavaFX时,我们重写启动应用程序的start方法 @Override public void start(Stage primaryStage ) {} 我发现java编译器知道,当没有主方法时,start是起始点。一个主要的方法似乎是不必要的。 是否仍有理由实施一项主要政策 还存在实现main方法的功能性原因吗?注意:我的答案假设是OpenJDK/OracleJDK。我不知道其他供应商是否也这样做 其他人引用的文档侧重于不再存在的JavaFX Packager工具1。值得注意的是,该
@Override
public void start(Stage primaryStage ) {}
我发现java编译器知道,当没有主方法时,start是起始点。一个主要的方法似乎是不必要的。
是否仍有理由实施一项主要政策
还存在实现main方法的功能性原因吗?注意:我的答案假设是OpenJDK/OracleJDK。我不知道其他供应商是否也这样做
其他人引用的文档侧重于不再存在的JavaFX Packager工具1。值得注意的是,该工具似乎不是必需的(至少对于Java10和Java11是如此)。唯一需要的是JavaFX库存在,并且指定的主类扩展应用程序
;然后,无论代码是如何组装的,您都不需要main
方法
是否还有功能上的原因仍然需要实现主方法
在一个普通的JavaFX应用程序中,我会说不。您想在main
中进行的任何初始化都可以在application.init
中进行。您还可以通过Application.getParameters
访问命令行参数
还有一个最重要的问题,为什么编译器接受start作为起点。。这反对我的编程神经质
有关JavaFX(至少对于10和11)应用程序的内部启动过程的详细信息,请参阅
此外,编译器不“接受开始作为起点”。编译器只是编译代码,并查看start
-和main
-与任何其他方法相同。运行时搜索并调用main
。也就是说,链接的答案是关于start
(以及一般的JavaFX应用程序)是如何得到特殊处理的
一,。在Java11中删除了packager工具。然而,有一个可能的替代者即将到来:。请参阅,或上述答案中引用的文档-