相对路径不起作用
Relative path does not work
我正在尝试用 JavaFX 重建俄罗斯方块。
我的项目名为 TetrisProject (C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject
)
Main 内部获取资源时出现问题。 (C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject\tetris\src\be\kdg\tetris\Main.java
)
public class Main extends Application {
primaryStage.getIcons().add(new Image("tetris\resources\images\icon.png")
}
icon.png
是我要为我的 windows 设置的图标。 (C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject\tetris\resources\images\icon.png
)
tetris\resources\images\icon.png
应该是相对路径,因为
File f = new File(".");
System.out.println(f.getAbsolutePath());
运行 inside Main.java 输出 C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject\
.
我给icon.png
写的相对路径是对的吧?
该路径不是文件路径,它是资源的 URL。
documentation 表示 "If the passed string is not a valid URL, but a path instead, the Image is searched on the classpath in that case." 大概 resources
是一个源文件夹,所以路径只需 images/icon.png
:
primaryStage.getIcons().add(new Image("images/icon.png"));
您可以通过查看 output/build/bin 文件夹中的内容(无论您的 IDE 怎么称呼它)来进行检查。根据您的 IDE 配置来处理资源目录的方式,应该将图像复制到那里,这就是 Image
构造函数在运行时查看的位置。 (显然,您的源文件夹通常在运行时无法访问。)
我正在尝试用 JavaFX 重建俄罗斯方块。
我的项目名为 TetrisProject (C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject
)
Main 内部获取资源时出现问题。 (C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject\tetris\src\be\kdg\tetris\Main.java
)
public class Main extends Application {
primaryStage.getIcons().add(new Image("tetris\resources\images\icon.png")
}
icon.png
是我要为我的 windows 设置的图标。 (C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject\tetris\resources\images\icon.png
)
tetris\resources\images\icon.png
应该是相对路径,因为
File f = new File(".");
System.out.println(f.getAbsolutePath());
运行 inside Main.java 输出 C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject\
.
我给icon.png
写的相对路径是对的吧?
该路径不是文件路径,它是资源的 URL。
documentation 表示 "If the passed string is not a valid URL, but a path instead, the Image is searched on the classpath in that case." 大概 resources
是一个源文件夹,所以路径只需 images/icon.png
:
primaryStage.getIcons().add(new Image("images/icon.png"));
您可以通过查看 output/build/bin 文件夹中的内容(无论您的 IDE 怎么称呼它)来进行检查。根据您的 IDE 配置来处理资源目录的方式,应该将图像复制到那里,这就是 Image
构造函数在运行时查看的位置。 (显然,您的源文件夹通常在运行时无法访问。)