gpt4 book ai didi

java - 我应该把 Java 程序的资源放在哪里?

转载 作者:行者123 更新时间:2023-12-02 12:25:42 25 4
gpt4 key购买 nike

我正在使用 Eclipse 进行 Java 编程。

我最近尝试在我的程序中播放声音文件。我这样做了:

URL url = this.getClass().getResource("ih.wav");
audioIn = AudioSystem.getAudioInputStream(url);
clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();

只有当我尝试将 ih.wav 放入 bin 文件夹中时,这才起作用,就好像 bin 文件夹是我的项目的“基本文件夹”一样。将文件放在项目的主文件夹中,不起作用。把它放在src文件夹中,也不起作用。

有人可以向我解释一下将我的 Java 程序资源放在哪里吗?另外,如果我将资源导入到 Eclipse 中,有什么关系吗?谢谢

编辑:

尝试在主项目文件夹中创建资源文件夹,仍然给我一个 NullPointerException:

        URL url1 = this.getClass().getResource("res/ah.wav");
audioIn = AudioSystem.getAudioInputStream(url1);
clip1 = AudioSystem.getClip();
clip1.open(audioIn);

URL url2 = this.getClass().getResource("res/eh.wav");
audioIn = AudioSystem.getAudioInputStream(url2);
clip2 = AudioSystem.getClip();
clip2.open(audioIn);

URL url3 = this.getClass().getResource("res/ih.wav");
audioIn = AudioSystem.getAudioInputStream(url3);
clip3 = AudioSystem.getClip();
clip3.open(audioIn);

clip1.start();
clip2.start();
clip3.start();

最佳答案

警告:我不使用 Eclipse,我从未使用过 Eclipse,我对 Eclipse 的了解相当于阅读其他帖子并在这里回答问题

在您的项目下,创建一个名为 resources 的目录。在这里放置您想要从应用程序中访问的所有“资源”。这些将作为嵌入式资源与您的应用程序捆绑在一起。

在您的应用程序中使用其中之一

this.getClass().getResource("/ah.wav")

this.getClass().getResource("/resources/ah.wav")

假设您将文件放置在 resources 路径的顶层。如果它们位于子目录中,您需要提供完整路径...

清理、构建和测试

关于java - 我应该把 Java 程序的资源放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056815/

25 4 0