【问题标题】:IntelliJ can't locate file by it's relative path, only absoluteIntelliJ 无法通过相对路径定位文件,只能通过绝对路径定位
【发布时间】:2021-03-14 13:47:37
【问题描述】:

在我的项目中,我需要使用我播放的 3 个 .wav 文件。这些文件与我使用它们的路径的类位于同一目录中。问题是我只有在指定文件的绝对路径时才能听到声音。当我使用相对路径时,它不起作用。我尝试了很多组合,但没有一个有效。我需要使用相对路径,因为它是一个插件项目。当我注入仅包含文件名的文件引用时,IntelliJ 可以看到该文件,但该引用只是临时的,显然不能解决我的问题。 My directories 我目前的路径:

private String soundLevel1 = "/de/halirutan/keypromoterx/sound_effects/duck_quack_sound_effect.wav";

我的文件对象:

File file = new File(filePath);

我的音频开始:

AudioListener listener = new AudioListener();
    try (AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file)) {
        Clip clip = AudioSystem.getClip();
        try (clip) {
            clip.addLineListener(listener);
            clip.open(audioInputStream);
            clip.start();
            listener.waitUntilDone();
        }

【问题讨论】:

  • 请添加设置相对路径的代码
  • 我当前路径的截图链接在我的问题中。我尝试了许多不同的方式设置路径,但它不起作用。
  • 这不是路径,这是文件名。提供代码你怎么称呼它?
  • 我在问题中插入了代码

标签: file intellij-idea filepath


【解决方案1】:

尝试读取文件

URL url = getClass().getResource(soundLevel1);
AudioSystem.getAudioInputStream(url);

使用getClass().getResource(),您正在读取项目中的文件

【讨论】:

  • 它不工作。也许问题是它是一个插件?
  • 使用相对路径执行会收到什么错误?如果它适用于绝对路径,那么问题肯定出在您的代码中。
  • 并在您的src/de/halirutan/keypromoterx 文件夹中创建资源。在项目之外它当然行不通
  • 只有声音有问题,图标和我的 .wav 文件存储在同一目录中,并且显示没有任何问题
  • 问题标题 IntelliJ 无法通过相对路径定位文件,只能通过绝对路径定位。你说只有声音有问题。我无语了
【解决方案2】:

播放带有绝对路径的wav,相对不播放。

问题在于声音不是在于阅读目录(即问题标题)

没有错误

clip.start();System.out.println("play");之前make,看看是否执行

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 2012-06-19
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2011-12-29
    • 2012-02-27
    • 1970-01-01
    相关资源
    最近更新 更多