【发布时间】:2018-03-09 19:38:03
【问题描述】:
基本上我想使用来自utils/images 的icon.png 而不是来自src/app 的icon.png。它们是相同的,但为了保持一些项目顺序,我想使用 utils 文件夹。
当前代码:stage.getIcons().add(new Image(getClass().getResourceAsStream("icon.png")));
(这是 JavaFX 代码,但我的问题一般基于 Java)
我听说你可以使用"../icon.png" 来向上文件夹
我通过将 icon.png 放入我的 src 文件夹(而不是应用程序)中进行了尝试,它确实有效。但是“../”不能工作两次:"../../icon.png" 不能工作(所以我不能把我的图像放到主项目文件夹中)。
如果我尝试"../images/icon.png",它也可以工作(images 是我刚刚创建的文件夹[不是在屏幕截图上],我将它放入 src 文件夹,但没有像这样放入 app 文件夹:
但我的问题是我需要上 2 个文件夹,而不仅仅是 1 下 2 个文件夹。
下去没问题,但是"../../icon.png"不行,我怎么爬起来2?
编辑: 其实,
似乎是所有已编译类所在的正确文件夹。所以这是我到 utils 文件夹(仍在主项目文件夹中)的旅程的开始位置。我的问题还是一样,只是说我现在必须向上(或返回)4 个文件夹而不是 2 个。有什么想法吗?
我正在使用 IntelliJ,如果这有帮助的话。
编辑 2: 我发现了如何向上文件夹:
File projectFolder = new File(getClass().getResource("").toURI()).getParentFile().getParentFile().getParentFile().getParentFile();
但是现在怎么去 2 呢? 还有:当我更改我的 IDE 时,这行代码是否会停止工作,因为 IntelliJ 中的 .class 文件存储在这个“out/...”文件夹结构中,但在 eclipse 中它看起来不同,在 NetBeans 中也可能。
最好将 icon.png 放在执行类所在的同一文件夹中,以防止我刚才所说的吗? ...
谢谢!
【问题讨论】:
-
没有任何使用
File和没有使用..的路径,如果并且当你将你的应用程序捆绑为一个jar 文件时将起作用。您将“资源”与“文件”混淆了。看看stackoverflow.com/questions/34755630/… -
out/production/PlayfairFX层次结构中还有什么?utils/images真的在下面,还是只是images?
标签: java windows javafx directory