Итак, у меня есть Java-приложение, которое я хочу превратить в исполняемый файл jar. Я использую JMF в этом приложении, и я не могу заставить звуковые файлы работать правильно ...
Я создаю банку, используя
jar cvfm jarname.jar manifest.txt *.class *.gif *.wav
Итак, все звуковые файлы помещаются в банку, а в коде я создаю проигрыватели, используя
Player player = Manager.createPlayer(ClassName.class.getResource("song1.wav"));
JAR находится на моем рабочем столе, и когда я пытаюсь запустить его, возникает следующее исключение:
javax.media.NoPlayerException: Cannot find a Player for :jar:file:/C:/Users/Pojo/
Desktop/jarname.jar!/song1.wav
... Он не получает исключений IOException, поэтому, похоже, он, по крайней мере, находит сам файл в порядке.
Кроме того, до того, как я использовал getResource, у меня было так:
Player player = Manager.createPlayer(new File("song1.wav").toURL());
и он играл нормально, так что я знаю, что с самим звуковым файлом все в порядке
Причина, по которой я пытаюсь перейти на этот метод вместо метода File, заключается в том, что звуковые файлы могут быть упакованы внутри самого jar-файла и не должны быть его братьями и сестрами в каталоге.