gpt4 book ai didi

java - 我应该如何在 Java 中使用 getResource()?

转载 作者:搜寻专家 更新时间:2023-11-01 01:47:09 24 4
gpt4 key购买 nike

这个问题在许多地方被问到,有无数的小变化。 (例如 Java - getClassLoader().getResource() driving me bonkers 等等。)我仍然无法让它工作。
这是一个代码片段:

        String clipName = "Chook.wav";
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
// URL url = classLoader.getResource(clipName);
URL url = new URL("file:///Users/chap/Documents/workspace/the1620/bin/ibm1620/" + clipName);
ais = AudioSystem.getAudioInputStream(url);

这行得通——请注意,我已经将路径硬编码到包含剪辑文件的目录,在那里,并且与我的 .class 文件。唉,注释掉的代码只是为 url 返回一个空值。

大多数其他帖子似乎都涉及 getResourceAsStream()。我想我应该使用 getResource()。 有什么不同吗?

只是不能这么难。有什么线索吗?

最佳答案

String clipName = "Chook.wav";

使用getResource时,您传入的字符串必须是绝对名称或相对于某个类有效。由于您使用的是 ClassLoader.getResource() 而不是 Class.getResource(),因此它必须是绝对路径。

没有看到你的实际文件层次结构,我只能猜测“bin”是你编译的类和资源的根,“ibm1260”是该路径中的一个包/文件夹,“Chook.wav”存在于该路径中文件夹。如果是这种情况,那么您需要使用 /ibm1260/Chook.wav(或者可能是 ibm1260/Chook.wav,我通常不使用资源类加载器lookups) 作为传递给 getResource() 的文件的名称。

无论哪种方式,您都需要确保将文件复制到编译代码的位置,并且根文件夹位于类路径中。

关于java - 我应该如何在 Java 中使用 getResource()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400646/

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