gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:06:44 25 4
gpt4 key购买 nike

将 IntelliJ java 和 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图片(“文件:src/main/java/sample/image.png”)?任何帮助将不胜感激!

最佳答案

配置资源文件夹,然后将图像添加到那里。构建 jar 后,如果你检查里面的文件(你可以通过将它转换为 zip 来做到这一点)并且图像不在那里,你应该首先包含它们。为此,您可以在构建工件时包含目录内容并添加资源文件夹:enter image description here

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

Image image = new Image(getClass().getResourceAsStream("/image.png"));

此外,当您在模块中打开项目结构时,资源文件夹应配置为资源文件夹: enter image description here

关于java - 用 jar 打开时图像不可见。升级 javaFx 后创建新图像需要完整目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54509840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com