我的声音无法在.jar文件中播放



这是我的声音的代码。它只能在Eclipse中工作,而不能在.jar文件中工作

try {
     InputStream defaultSound = Game.class.getResourceAsStream("/TrailsGameMusic.wav");
     // getClass().getSy.getResource("/images/ads/WindowsNavigationStart.wav");
     System.out.println("defaultSound " + defaultSound);  // check the URL!
     AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(defaultSound);
     Clip clip = AudioSystem.getClip();
     clip.open(audioInputStream);
     clip.loop(Clip.LOOP_CONTINUOUSLY);
} catch (Exception ex) {
     ex.printStackTrace();
}

对不起,我通过添加一个名为sound的声音并执行来解决这个问题

sound = new Sound("res\TrailsGameMusic.wav");

Game.class.getResourceAsStream("/TrailsGameMusic.wav");使用类加载器来定位文件,因此通常情况下,文件必须位于类路径上。如果路径以"/"开头,那么文件名是相对于jar文件中类的根的,所以把这个文件放在顶级的jar中。我的猜测是,它在项目的根文件夹中,这是Eclipse的默认位置。

最新更新