这篇材料在第10页上说,可以在不编写main
的情况下运行JavaFX应用程序。我假设jfxrt.jar
中有一些预定义的main
,它查找扩展Application
的类并运行它
是这样吗?如何做到这一点?
我想
jfxrt.jar
中有一些预定义的main
,它会查找扩展Application
的类并运行它。
这不是该评论的真正含义,也不是它的工作方式。它所说的只是,如果"主类"是javafx.application.Application
的子类,那么它不需要定义main(String[] args)
方法。来自java
:的Oracle工具文档
java
命令可用于通过加载具有main()
方法或扩展javafx.application.Application
的类来启动JavaFX应用程序。在后一种情况下,启动器构造Application
类的实例,调用其init()
方法,然后调用start(javafx.stage.Stage)
方法。
(我的重点)
因此,如果在命令行上指定的类是Application
的子类,则此行为只需烘焙到JVM可执行文件中即可。请注意,您仍然需要指定要运行的类;如果它是CCD_ 18子类,则不需要主方法。(JVM并没有像您在问题中描述的那样,扫描类路径以查找要运行的候选类。)
要运行的类可以在命令行(java com.mycompany.MyApp
)上指定,也可以以通常的方式在jar文件清单中指定。
这是在JDK 8,iirc中添加的。