将Windows更新到1903年(2019年5月)之后,JavaFX无法创建阶段

时间:2019-06-08 06:52:34

标签: javafx windows-10-desktop

我用2019年5月的版本(1903)更新了Windows 10笔记本电脑,JavaFX似乎不再起作用。启动任何JavaFX应用程序后,我在任务栏上看到一个图标,但未创建任何窗口。我的Java是最新的Java 8,最新的Eclipse是IDE。

这是一个已知问题还是我做错了什么?是否有解决方法或解决方法? 谢谢

我创建了一个小应用程序来重现该问题。 如果我注释掉以下行     primaryStage.initStyle(StageStyle.UNDECORATED); 然后它会按预期工作。否则,Windows 10(1903)会挂起,不显示任何窗口。请注意,您将需要在Windows中使用任务管理器来杀死JVM。

package com.alam33;

import java.io.IOException;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class Win10_1903Test extends Application {

    public Win10_1903Test() {

    }

    @Override
    public void start(Stage primaryStage) throws IOException {

        VBox vbox = new VBox();
        vbox.setPrefHeight(200);
        vbox.setPrefWidth(300);
        Scene scene = new Scene(vbox);
        primaryStage.setTitle("Win10_1903Test");
        primaryStage.setScene(scene);
        primaryStage.setFullScreen(true);

        /* THIS IS THE OFFENDING LINE */
        primaryStage.initStyle(StageStyle.UNDECORATED);

        primaryStage.show();

    }

    public static void main(String[] args) {

        launch(args);
    }

}

1 个答案:

答案 0 :(得分:1)

这是Oracle提供的一种解决方法,尽管他们无法复制它。我怀疑问题是特定于机器中的硬件的。

解决方法:添加jvm选项  -Dprism.order = sw

如下所述,这不是一个合适的解决方案,但我将其作为答案,因为它确实有助于确保您的代码正常,这在开发过程中很重要。