/res/shot.mp3
- это абсолютный путь. Это будет работать, только если res
находится в корневом каталоге вашей файловой системы. Вы говорите: «Папка ресурса - это папка в этом проекте». На скриншоте структура каталогов выглядит примерно так:
/home/your_user_dir/your_project_dir
/src ...
/bin
/res
Таким образом, вам нужно изменить создание вашего File
объекта так, чтобы он либо имел правильный относительный путь, либо использовал абсолютный путь.
Вы можете использовать
InputStream is = this.getClass().getClassLoader().getResourceAsStream("/res/shot.mp3");
, а затем создайте AudioInputStream
с помощью AudioSystem.getAudioInputStream(InputStream)
- документации
Поэтому измените свой код на
String path = "/res/shot.mp3";
InputStream is = this.getClass().getClassLoader().getResourceAsStream(path);
try {
audioIn = AudioSystem.getAudioInputStream(is);
clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
} catch(Exception e) {
e.printStackTrace();
}