터미널 인터페이스에서 사운드를 재생해야하는 프로그램이 있습니다.이클립스에서 파일을 찾았지만 터미널에서 .jar를 실행할 때 찾지 못했습니다.
코드는 매우 간단하고 여기있다 :
public static synchronized void playSound() {
new Thread(new Runnable() {
public void run() {
File _file = new File("music/sound.wav");
try (AudioInputStream _audio = AudioSystem
.getAudioInputStream(_file)) {
Clip _clip = AudioSystem.getClip();
_clip.open(_audio);
_clip.start();
} catch ([…] e) {
// […]
}
}
}).start();
}
파일 내 소스 경로에있는 음악 폴더에 있습니다.
이클립스에서 프로그램을 실행할 때 모든 것이 완벽하게 작동합니다. 그러나 나는 .jar 파일에 내보낼 나는이 메시지가 CMD 창에서 그것을 시도하는 경우 :
java.io.FileNotFoundException: music\sound.wav (The system cannot find the path specified)
[편집] 오디오 파일이 실제로 .JAR로 포장되어 있지만, 그것은 여전히 작동하지 않습니다 .
Windows 프롬프트에서 사운드를 재생할 수 있습니까? 그렇지 않다면 거기에 있습니까?
감사합니다, SilverDuck 파일이 jar 파일에 패키지화됩니다
어디에서이 음악 폴더를 실행하고 있습니까? –
당신의 문제는 상대적인 파일 경로'music/sound.wav'입니다. 상상할 수 있습니다. 항아리를 만들었 으면 항아리에 오디오 파일을 포함시키지 않았습니다. 물론 필요한 리소스로 항아리를 만들 수도 있지만 응용 프로그램에서 파일 경로를 입력으로 받아들이는 것이 어떻겠습니까? 그런 다음 항아리를 실행할 때 전체 경로를 제공 할 수 있으며 파일을 선택할 수 있습니다. 이렇게하면 제공 한 파일을 재생할 수 있습니다. –
음악 폴더가 jar 파일에 번들로 제공되므로 이해가 안됩니다. 번들을 사용하지 않을 때 경로가 존재하지 않는다는 다른 오류가 있습니다. –