JavaFX jar 未与 JAR 文件一起加载,但在将代码编译为应用程序时加载正常

在 IntelliJ 中编译为应用程序时,我可以很好地构建和启动程序。但是,当我打包和部署并尝试双击 jar 时,没有任何反应。我决定使用 Git Bash 并从那里运行它,我看到它正在抛出 NullPointerException。下面是 JavaFX 主类、我的文件结构和抛出的错误。


为什么我在 jar 中得到 NullPointerException 但在 IntelliJ 中构建和编译时工作正常?


如果我遗漏任何信息,请告诉我。谢谢!


public class Main extends Application {


    private Stage stage;


    @Override

    public void start(Stage stage){

        this.stage = stage;

        this.stage.setTitle("My JavaFX App");

        initRootlayout();

    }


    private void initRootlayout(){

        try{

            Parent root = FXMLLoader.load(getClass().getResource("/view/main.fxml"));

            Scene scene = new Scene(root);

            stage.setScene(scene);

            scene.getStylesheets().add("css/default.css");

            stage.setResizable(false);

            stage.show();

        }


        catch(Exception e){

            throw new RuntimeException(e);

        }

    }


    public static void main(String[] args) {

        launch(args);

    }

}

http://img3.mukewang.com/627cd38600012aae03240516.jpg

http://img1.mukewang.com/627cd38f0001a65407290568.jpg

萧十郎
浏览 84回答 1
1回答

12345678_0001

检查您的 jar 内容,主要是它缺少您的资源文件夹。如果您使用 IntelliJ Artifacts 制作 jar,请确保将您的资源文件夹包含在 jar 中,文件 -> 项目结构 -> 工件 -> 选择您的工件 -> 输出布局选项卡 -> -> 目录内容 -> 选择您的资源文件夹。然后重建你的罐子
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java