小编Mr.*_*ear的帖子

JavaFX 8如何在几乎空的Application类中启动JavaFX Application线程?

可以说,我们有以下课程:

import javafx.application.Application;
import javafx.stage.Stage;

public class Test extends Application
{
    public Test()
    {
        System.out.println("Constructor");
    }

    @Override
    public void start(Stage primaryStage) throws Exception
    {
        System.out.println("start");
    }

    public static void main(String... args)
    {
        System.out.println("main");
    }
}
Run Code Online (Sandbox Code Playgroud)

它源自Application但不使用任何方法.通常通过launch(args)在main中调用来启动JavaFX应用程序.

当我启动这个程序时,唯一的输出是"main",因此不会调用构造函数和start,但程序不会因为运行JavaFX Application线程而终止.但是它来自哪里?

我做了一些调试,发现在main方法运行之前,线程是从主线程启动的.堆栈跟踪以NativeMethodAccessorImpl.

为了更加奇怪:当我从另一个类启动main方法时,JavaFX Application线程没有启动:

public class Test2
{
    public static void main(String[] args)
    {
        Test.main(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

那么这是什么样的黑魔法呢?

java javafx javafx-8

8
推荐指数
1
解决办法
502
查看次数

标签 统计

java ×1

javafx ×1

javafx-8 ×1