문제는 당신이 당신의 자원을 얻는 방법이다.
wav 파일을 src
폴더에 넣으십시오. FileInputStream을 사용하여 wav 파일을 가져 오면 작동하지 않습니다. 당신은 항아리에 파일을 넣으면
당신이 그들을 통해 서 접근해야이 같은
getClass().getResourceAsStream(filepath)
뭔가. 단지 예를의
public class LoadFile {
public static void main(String[] args) throws Exception {
InputStream stream =
LoadFile.class.getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
AudioSystem.getAudioFileFormat(url);
}
}
는 점은 단지 내부의 자원되고, 클래스 로더가 그것을 얻을 수있는 도구입니다 것입니다.
그래서, 비 정적 메서드 내에서 당신은 사용할 수 있습니다
public void myMethod() throws Exception{
InputStream stream = getClass().getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
}
을 어떤 상황에서이 같은 스레드 클래스 로더를 사용해야합니다
public void myMethod2() throws Exception{
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/songwavs/s1_..._.wav");
AudioSystem.getAudioFileFormat(stream);
}
그럼 당신은 당신의 파일을 읽을 넣을 수 있습니다 둘 다 일식 또는 항아리에서 달릴 때.
응용 프로그램을 패키지화하고 배포하는 방법에 대해 더 많은 내용이 있지만 그저 시작일뿐입니다.
항아리를 만들기 위해 무엇을 사용하고 있습니까? – ProgrammerBoy
일식에서 나는 export -> runnable jar 파일을 사용한다 –
"패키지가 필요한 라이브러리를 생성 된 jar에 넣었다"와 "생성 된 jar 파일에 필요한 라이브러리를 추출하려고 시도했다" –