相对路径不起作用

时间:2017-02-22 15:06:51

标签: java javafx path relative tetris

我正在尝试在JavaFX中重建俄罗斯方块。 我的项目名为TetrisProject(C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject

Inside 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是我要为我的窗口设置的图标。 (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());

在Main.java内输出C:\Users\Matthias\IdeaProjects\OOPROG\TetrisProject\

我为icon.png写的相对路径是正确的,对吗?

1 个答案:

答案 0 :(得分:2)

路径不是文件路径,而是资源的URL。

documentation说“如果传递的字符串不是有效的URL,而是路径,则在该情况下在类路径上搜索Image。”据推测,resources是一个源文件夹,因此路径必须只是images/icon.png

primaryStage.getIcons().add(new Image("images/icon.png"));

您可以通过查看output / build / bin文件夹中的内容进行检查(无论您的IDE调用它)。根据IDE配置如何处理资源目录,应该在那里复制图像,这就是Image构造函数将在运行时查看的位置。 (显然,您的源文件夹通常在运行时无法访问。)