Processing 2.0 Movie 클래스를 사용하여 동영상을 실행하려고합니다.처리 2.0 jar에서 실행할 때 동영상이 동영상 파일을 열 수 없음
코드 편집기 (제 경우에는 Eclipse)에서 프로그램을 실행하면 모든 것이 잘 작동하고 코드가 완벽하게 실행됩니다. 동영상을 찾아서 시작합니다.
그러나 내 프로그램을 jar로 내보내고 터미널에서 시작하면 파일을 찾지 만 열려고하면 충돌이 발생합니다.
현재이 코드를 사용하여 영화 경로 문자열을 찾습니다.
public String locateMovie(String moviePath) {
String movie = MoviePlayer.class.getClassLoader().getResource(moviePath).getPath();
if (movie == null) {
System.out.println("FATAL ERROR --- Movie file not found: '" + moviePath + "'");
}
return movie;
}
당신은 내가 .jar 파일로 내 보낸 모든 시간을 경로 나 자신을 변경하지 않으 후 경로가 다르기 때문에 내가 나를 위해 파일을 찾습니다 클래스 로더를 사용하고 볼 수 있듯이. .getPath()는 의 파일 :/Path/To/My/File에서 위의 방법을 사용하면 불필요한 부작용이되므로 '파일 :'을 삭제합니다.
내 코드에서 추가로 이미 classLoader가 반환하는 경로에 아무런 문제가 없는지 확인하기 위해 추가 검사를 추가했습니다. 다음 행을 사용하여이 작업을 수행합니다.
File temp = new File(moviePath);
System.out.println("If I have something after this, the file exists: '" + temp + "'");
그것은 항상 내 이클립스 (/Users/Path/To/My/Folder/2/java/Game/movies/introMovie.mp4) 내에서 또는 실행 파일에서 실행중인 여부, 올바른 경로를 반환합니다. jar 파일 (introMovie.mp4).
는 처음에 나는 내 프로젝트의 일부 구조를 가지고 않기 때문에 .jar 파일에이 바로 그것으로 이어지는 길없는 나에게 파일을주고 있었다 이상한했지만
jar tf myProject.jar
사용 후 생각
내 commandLine에서 명령은 파일에 대한 동일한 파일/경로 이름을 반환하므로 경로가 정확해야하며 모두 여전히 여기에 있습니다. 나는 다음과 같은 코드로 처리 '영화 클래스를 통해 영화를로드 할 때
그러나 지금 :
currentMovie = new Movie(parent, moviePath);
는 그것은 java.lang.StringIndexOutOfBoundsException 예외와 충돌이 발생합니다. 나는이 코드가 내 코드 편집기 내에서 완벽하게 실행되기 때문에 내가 뭘 잘못하고 있는지 전혀 모른다. + 나는 오디오 파일과 실행 가능한 .jar 파일에서도 aswel을 실행하는 파일을 찾는 동일한 방법을 사용하고있다.
필자가 Movie class reference library을 읽는 것으로부터 알 수 있듯이, 파일을 표시 할 장소와 내가 제공하는 파일의 경로가 필요합니다.
나는 여기서 몇 몇 베테랑이 내가 잘못하고있는 것을보고 내가이 문제를 해결할 수 있기를 바랬다. 나는 지금 며칠 동안 고심하고있다. 아마 내가 지금 바라보고있는 바보 같은 짓 일 겁니다. 내가 할 것이 몇 가지의 여기 정확히 무엇을 잘못 알고 있지만하지 않는