使用jar打开时图像不可见。升级javaFx以创建新映像后,需要完整目录

使用jar打开时图像不可见。升级javaFx以创建新映像后,需要完整目录,java,gradle,intellij-idea,javafx,Java,Gradle,Intellij Idea,Javafx,将IntellijJava和javaFx升级到11,将gradle升级到5.1.1之后。创建新映像时,我需要如下说明完整目录: new Image("file:src/main/java/sample/image.png"); 在此之前,我可以简单地做: new Image("image.png") 你知道为什么项目不能正确识别我的新图像包(“Image.png”)吗?它给了我这个错误,但在更新之前,它工作正常: java.lang.IllegalArgumentException: Inv

将IntellijJava和javaFx升级到11,将gradle升级到5.1.1之后。创建新映像时,我需要如下说明完整目录:

new Image("file:src/main/java/sample/image.png");
在此之前,我可以简单地做:

new Image("image.png")
你知道为什么项目不能正确识别我的新图像包(“Image.png”)吗?它给了我这个错误,但在更新之前,它工作正常:

java.lang.IllegalArgumentException: Invalid URL or resource not found
我想要完成的是在执行jar时使图像和fxml可见。我正在创建一个jar文件,当我为fxml或图像指定如下路径时:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(new URL("file:src/main/java/sample/login.fxml"));
Pane root = loader.load(); 
当我运行jar时,我得到:

Caused by: java.io.FileNotFoundException: src\main\java\sample\login.fxml (The system cannot find the path specified)

我怎样才能把它打包成一个jar,这样它就可以找到文件,为什么在更新之前我可以简单地写:new Image(“Image.png”),而现在我需要写:new Image(“file:src/main/java/sample/Image.png”)?任何帮助都将不胜感激

配置一个资源文件夹,然后在那里添加图像。构建jar之后,如果您检查了其中的文件(您可以通过将其转换为zip来实现),而图像不在那里,那么您应该首先包含它们。您可以通过在构建工件时包含目录内容并添加resource文件夹来完成此操作:

现在,您可以将图像添加为资源:

Image image = new Image(getClass().getResourceAsStream("/image.png"));
此外,在模块中打开项目结构时,资源文件夹应配置为资源文件夹: