1

NetBeansに問題があります。身元音楽のみを再生するプログラムを作成しました。NetBeans IDEからプログラムを実行すると、エラーなしで音楽とともに実行されます。しかし、.jarファイルを実行しようとすると、音楽がなくてもプログラムは正しく実行されます。パスを100回チェックしましたが、機能していません。エラーはありません。何もありません。音楽は.jarファイルから再生されていません。なぜそうなのか?

public static synchronized void playSound(final String url) { 
  new Thread(new Runnable() { 
    public void run() { 
     try { 
        Clip clip = AudioSystem.getClip(); 
        AudioInputStream inputStream; 
        inputStream = AudioSystem.getAudioInputStream(
            this.getClass().getResource(url)); 
        clip.open(inputStream);
        clip.start(); 
     } catch (Exception e) { 
        System.err.println(e.getMessage()); 
     } 
    } 
   }).start(); }
4

2 に答える 2

6

このようなファイルにアクセスするにはgetResourceAsStream(String)を使用する必要があります。それらがクラスパスに存在することを確認する必要があります。

見るコードがなければ、jarファイルには従来のファイルシステムの概念がないため、機能しないFileInputStreamなどを使用しようとしていると思います。

于 2012-11-28T00:13:10.960 に答える
2

.jar を実行したい場合、.jar を実行したときに音楽を再生したい場合は、音楽ファイルをJARに入れる必要があります。Paul Sanwald が既に言ったように、「getResourceAsStream()」 は使用したい API です。

IDE でも動作します。

私はたまたま Eclipse IDE を好みます。Eclipse では、ファイルをプロジェクトの「src」フォルダーにコピーします (この場合、.jar をエクスポートすると、ファイルは自動的に適切な場所に配置されます)。

このリンクは、NetBeans でそれを行う方法を説明しています。

于 2012-11-28T00:38:08.613 に答える