不使用main方法运行JavaFX应用程序

时间:2017-11-06 14:25:43

标签: java javafx main

This material在第10页上说,可以在不编写main的情况下运行JavaFX应用程序。我想在main里面有一些预定义的jfxrt.jar,它会查找一个扩展Application并运行它的类。

是吗?是这样吗?怎么做?

1 个答案:

答案 0 :(得分:5)

  

我认为main内部有一些预定义的jfxrt.jar,它会查找扩展Application并运行它的类。

这个评论并不是真正的意思,并不是它的运作方式。所有它说的是"主要类"如果它是main(String[] args)的子类,则不需要定义javafx.application.Application方法。来自Oracle tools documentation for java

  

java命令可用于通过加载具有main()方法或扩展javafx.application.Application的类来启动JavaFX应用程序。在后一种情况下,启动器构造Application类的实例,调用其init()方法,然后调用start(javafx.stage.Stage)方法

(我的重点)

因此,如果在命令行上指定的类是Application的子类,则此行为将简单地附加到JVM可执行文件中。请注意,您仍然必须指定要运行的类;如果它是Application子类,它就不需要主方法。 (JVM没有扫描候选类运行的类路径,正如您在问题中所描述的那样。)

要运行的类可以在命令行(java com.mycompany.MyApp)上指定,也可以通常的方式在jar文件清单中指定。

这是在JDK 8中添加的,iirc。