Пакет javazoom работает в основной программе, но не работает в подпрограмме (.NoClassDefFoundError: javazoom/jl/decoder/JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Пакет javazoom работает в основной программе, но не работает в подпрограмме (.NoClassDefFoundError: javazoom/jl/decoder/

Сообщение Гость »


Я создаю MP3-плеер на языке Java, и написанный мною сценарий может воспроизводить mp3-файл в основном файле, но когда я помещаю тот же код в подпрограмму в другом файле Java, происходит сбой.

Вот сценарий, когда он находится в основном режиме (StandAlone.java):

import javazoom.jl.decoder.Bitstream; импортировать javazoom.jl.decoder.JavaLayerException; импортировать javazoom.jl.player.advanced.AdvancedPlayer; импортировать java.io.FileInputStream; импортировать java.io.IOException; общественный класс Stand_Alone { public static void main(String[] args) { Строка mp3FilePath = "песня.mp3"; попробуйте (FileInputStream fileInputStream = новый FileInputStream (mp3FilePath)) { Игрок AdvancedPlayer = новый AdvancedPlayer(fileInputStream); игрок.играть(); } catch (JavaLayerException | IOException e) { е.printStackTrace(); } } } Вот код основной и подпрограммы (Main.java и SongPlayer.java):

публичный класс Main { public static void main(String[] args) { SongPlayer.load(); } } import javazoom.jl.decoder.Bitstream; импортировать javazoom.jl.decoder.JavaLayerException; импортировать javazoom.jl.player.advanced.AdvancedPlayer; импортировать java.io.FileInputStream; импортировать java.io.IOException; публичный класс SongPlayer { общественная статическая недействительная нагрузка () { Строка mp3FilePath = "песня.mp3"; System.out.println(mp3FilePath); попробуйте (FileInputStream fileInputStream = новый FileInputStream (mp3FilePath)) { Игрок AdvancedPlayer = новый AdvancedPlayer(fileInputStream); игрок.играть(); } catch (JavaLayerException | IOException e) { е.printStackTrace(); } } } Я использую Windows, запускаю ее в командной строке с помощью команд:

javac -cp javazoom_1.0.1.jar SongPlayer.java Main.java Java Главная Два сценария, песня и jar-файл javazoom находятся в одной папке.

Результат выполнения команды:

Исключение в потоке «main» java.lang.NoClassDefFoundError: javazoom/jl/decoder/JavaLayerException в Main.main(Main.java:4) Вызвано: java.lang.ClassNotFoundException: javazoom.jl.decoder.JavaLayerException в java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) в java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) в java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 1 более Вопрос в том, почему Java не может видеть пакет javazoom, когда команды запускаются из подпрограммы, тогда как в автономном случае он может видеть его из main.

Как заставить Java видеть javazoom из подпрограммы?

Пожалуйста, помогите мне, это сводит меня с ума и останавливает мой прогресс. Я мог бы поместить все в один большой Java-файл, но это беспорядочно и запутанно.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»