0

这段代码应该在方法执行后播放一声短促的哔哔声。它在 netbeans 内部做什么。但是当我使用 netbeans 构建一个可执行的 Jar 文件时,它给了我一个 java.Lang.NullPointerException。有任何想法吗?

public void playSound() {

      try {
          AudioStream as = new AudioStream(ClassLoader.getSystemClassLoader().getResourceAsStream("resources\\beep-2.wav"));
          AudioPlayer.player.start(as); 
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
4

3 回答 3

1

使用正斜杠;反斜杠是特定于 Windows 的,并且仅在您使用分解布局时才有效。

于 2013-10-26T03:15:05.390 回答
1

将代码更改为以下它肯定会工作..

 public void playSound() {

    try {

         AudioStream as = AudioSystem.getAudioInputStream(this.getClass().getResource("resources\\beep-2.wav"));
         Clip clip = AudioSystem.getClip();
         clip.open(as);
         clip.start( );
       }
    catch (Exception e) {
    e.printStackTrace();
    }
   }
于 2013-10-26T06:23:11.430 回答
0

它无法找到您的音频文件。在保存 jar 的目录中创建一个资源文件夹,并将音频文件保存在该文件夹中。

或者,您可以在程序中给出确切的路径。例如 C:\resources\beep-2.wav

于 2013-10-26T03:13:05.197 回答