2017-01-07 7 views
1

사용자 인터페이스가 포함 된 Netbeans의 Java 프로젝트가 있습니다. 인터페이스에서 사용자는 프로젝트 작업 디렉토리 내의 폴더 "데이터"에 저장된 MP3 파일을 재생할 수 있습니다. 파일을 재생할 때 MP3 플레이어를 만들고 JLayer.jar를 사용하는 클래스가 있습니다.Java 실행 파일 .jar 파일이 외부 리소스의 MP3 파일을 재생하지 못합니다.

UI 클래스 내에는 MP3 플레이어 개체를 만드는 동작 메서드가있는 재생 단추가 있습니다. 그때만큼 내가 넷빈즈에서이 프로젝트를 실행으로 MP3 플레이어

MP3Player mp3 = new MP3Player(); 
mp3.play("data/audio/" + filepath); 

에 파일 경로를 통과, 그것을 잘 작동과 음악이 재생됩니다. 하지만 일단 jar 파일을 만들면 음악이 재생되지 않습니다. Loading an mp3 file with JLayer from inside the Jar

그러나 그 반대로 나는 JAR에있는 MP3 파일을 포함하지 않을 : 나는 예를 들어 비슷한 문제 에 대한 몇 가지 다른 게시물을 발견했다. 그것은 로컬 폴더 "데이터"에서 파일을 가져와야합니다.

mp3.files가 들어있는 "data"폴더를 jar 파일과 같은 디렉토리에 넣습니다. 따라서 파일 경로는 Netbeans 프로젝트의 작업 디렉토리에서 Netbeans에서 실행할 때와 똑같습니다 (문제가 없다고 말한 것처럼). 그리고 JAR은 로컬 "데이터"폴더에서 문제없이 텍스트 파일과 이미지와 같은 다른 모든 데이터를 가져옵니다.

도움이 매우 감사합니다.

+0

Java 프로세스의 작업 디렉토리는 무엇입니까? 당신은'System.out.println (System.getProperty ("user.dir")); –

답변

0

Netbeans은 다음과 같이 디렉토리를 만듭니다. YourProjectDir/dist/YourProject.jar. 도서관은 YourProjectDir/dist/lib/otherlibrary.jar 안에 있습니다. YourProjectDirdata 폴더를 만들고 미디어 파일은 YourProjectDir/data/audio/ 안에 있습니다.

당신이 무엇을하고, 그냥 이름을 가진 배치 파일을 만듭니다.

@echo off 
START/MAX dist\YourProject.jar 

YourProjectDir 안에 배치 파일을 배치하십시오. 이제 배치 파일을 실행하십시오.