这是我的声音的代码。它只能在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的默认位置。