在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);
}
}
答案 0 :(得分:1)
检查您的jar内容,主要是缺少您的资源文件夹。 如果使用IntelliJ Artifacts制作jar,请确保将资源文件夹包含在jar中,依次单击File-> Project Structure-> Artifacts->选择您的工件->输出布局选项卡-> ->目录内容 ->选择资源文件夹。 然后重建你的罐子