【问题标题】:How to manoeuvre through window-folder-constructions in Java? [duplicate]如何通过 Java 中的窗口文件夹结构进行操作? [复制]
【发布时间】: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


【解决方案1】:

我最喜欢的解决方案(这些天)是在方便的位置专门定义一个类以查找您的资源。

例如我会在images 中创建一个接口:

images/Images.java

package images ;
public interface Images { }

然后,您可以在应用程序中的任何地方进行操作:

new Image(Images.class.getResource("icon.png"))

(您只需要在您正在使用它的班级中import images.Images ;)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多