Это не проблема затмения. Файл открывается и воспроизводится java, но даже до того, как этот аудиоклип завершает воспроизведение, программа завершается - это означает, что java программа не ожидает завершения воспроизведения клипа
Ваш метод отсутствует одна строка кода, чтобы дать вам то, что вы хотите, см. ниже
Thread.sleep(clip.getMicrosecondLength() / 1000);
Итак, после добавления этой строки ваш код должен выглядеть так, и вы услышите свой musi c
AudioInputStream audio = AudioSystem.getAudioInputStream(file);
Clip clip = AudioSystem.getClip();
clip.open(audio);
clip.start();
Thread.sleep(clip.getMicrosecondLength() / 1000);