导出到jar后没有声音

我的应用程序有问题。 当我在Eclipse中运行应用程序时,声音播放效果很好,但如果我将应用程序导出到runnable jar,则声音不起作用。

播放声音的方法:

public static synchronized void playSound() { new Thread(new Runnable() { // The wrapper thread is unnecessary, unless it blocks on the // Clip finishing; see comments. public void run() { try { Clip clip = AudioSystem.getClip(); AudioInputStream inputStream = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("sound.wav")); clip = AudioSystem.getClip(); clip.open(inputStream); clip.start(); } catch (Exception e) { System.err.println(e.getMessage()); } } }).start(); } 

哪里可能是个错误?

问题在于此

 AudioInputStream inputStream = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("sound.wav")); 

因为任何原因,在JAR文件中没有工作getResourceAsStream 。 所以我用getResource替换它:

 AudioInputStream inputStream = AudioSystem.getAudioInputStream(getClass().getResource("sound.wav")); 

这很好用。