在 JavaFX 中使用 `start` 方法时是否不需要 main ?
Is main unnecessary when using `start` method in JavaFX?
使用 JavaFX 时,我们重写启动应用程序的方法 start。
@Override
public void start(Stage primaryStage ) {}
我发现 java 编译器理解 start 是没有 main 方法时的起点。一个主要的方法似乎是不必要的。
是否有理由仍然实施 main ?
是否还有功能性理由仍然实施主要方法?
注意:我的回答假设 OpenJDK/OracleJDK。不知道其他厂商是不是这样.
其他人引用的文档侧重于 JavaFX Packager 工具,该工具已不存在1。值得注意的是,该工具似乎不是必需的(至少对于 Java 10 和 11)。唯一需要的是 JavaFX 库存在并且指定的 main class extends Application
;那么无论代码如何组装,您都不需要 main
方法。
Are there also functional reasons to still implement a main method?
在正常的 JavaFX 应用程序中,我会拒绝。几乎任何您想在 main
中进行的初始化都可以在 Application.init
中完成。您还可以通过 Application.getParameters
.
访问命令行参数
P.S. the most important question why does the compiler accept start as a starting point.. It's against my programming neurotism
有关 JavaFX(至少 10 和 11)应用程序的内部启动程序的详细信息,请参阅 。
此外,编译器不会 "accept start as a starting point"。编译器只是编译代码,然后将 start
和 main
视为与任何其他方法相同。它是搜索 main
并调用它的运行时。也就是说,链接的答案涵盖了 start
(以及一般的 JavaFX 应用程序)如何获得特殊待遇。
1.在 Java 11 中删除了 packager 工具。但是,可能会有一个替代品:jpackager.
使用 JavaFX 时,我们重写启动应用程序的方法 start。
@Override
public void start(Stage primaryStage ) {}
我发现 java 编译器理解 start 是没有 main 方法时的起点。一个主要的方法似乎是不必要的。 是否有理由仍然实施 main ?
是否还有功能性理由仍然实施主要方法?
注意:我的回答假设 OpenJDK/OracleJDK。不知道其他厂商是不是这样.
其他人引用的文档侧重于 JavaFX Packager 工具,该工具已不存在1。值得注意的是,该工具似乎不是必需的(至少对于 Java 10 和 11)。唯一需要的是 JavaFX 库存在并且指定的 main class extends Application
;那么无论代码如何组装,您都不需要 main
方法。
Are there also functional reasons to still implement a main method?
在正常的 JavaFX 应用程序中,我会拒绝。几乎任何您想在 main
中进行的初始化都可以在 Application.init
中完成。您还可以通过 Application.getParameters
.
P.S. the most important question why does the compiler accept start as a starting point.. It's against my programming neurotism
有关 JavaFX(至少 10 和 11)应用程序的内部启动程序的详细信息,请参阅
此外,编译器不会 "accept start as a starting point"。编译器只是编译代码,然后将 start
和 main
视为与任何其他方法相同。它是搜索 main
并调用它的运行时。也就是说,链接的答案涵盖了 start
(以及一般的 JavaFX 应用程序)如何获得特殊待遇。
1.在 Java 11 中删除了 packager 工具。但是,可能会有一个替代品:jpackager.