2017-02-03 8 views
3

私のクラスでオーディオを再生するこのメソッドを作成し、正常に動作します。 しかし何らかの理由でjarファイルにエクスポートすると何も起こりません。 私は他のソリューションを試しましたが、私はちょうどnullポインタの例外を取得します。 は、誰もがあなたがこのようなファイルをロードする場合、私は間違ってエクスポートされたjarファイルでサウンドが再生されない

public void welcome(){ 
     try { 
      AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("sound/garage1.wav").getAbsoluteFile()); 
      Clip clip = AudioSystem.getClip(); 
      clip.open(audioInputStream); 
      clip.start(); 
     } catch(Exception ex) { 
      System.out.println("Error with playing sound."); 
      ex.printStackTrace(); 
     } 
} 
+0

エラーまたは例外がありますか? – RamPrakash

+0

probabyがフォローしていないので、ファイルは存在しません(単純なアーカイブであるため、 '.jar'を開くことができます) – AxelH

+0

[Runnable JARs Images/Files(Resources)]が重複している可能性があります(http://stackoverflow.com/questions/8960381/runnable-jars-missing-images-files-resources) – AxelH

答えて

4

やってアイデアを持っていない(ないクラスのressourceとして)、フォルダは「garage1.wav」を含む「音」である必要がありますjarを実行すると作業ディレクトリにあります。new File("")が作業ディレクトリを指しているためです。たとえば、ダブルクリックしてjarファイルを実行すると、 "sound"フォルダにはjarファイルと同じ親フォルダが必要です。

+0

私の問題を解決してくれてありがとう!!しかし、サウンドフォルダと同じ親フォルダにあるjarファイルがなければ、それを行う方法はありますか? –

+2

@rocheandleykwidamaもちろん。 "sound/garage1.wav"の代わりに任意の相対または絶対ファイルパスを定義することができます。サウンドファイルをjarファイルの内側に配置したい場合は、[Javaをリソースとしてjarファイルから再生する](http://stackoverflow.com/q/8425481)を参照してください。 – Calculator

関連する問題