すでに提示されている理論の代替理論。多くの場合、getResource() 呼び出しの成功は、それらを見つけるために呼び出されるクラス ローダー インスタンスに依存します。このため、getResource() を呼び出すユーザー定義オブジェクトのインスタンスを使用することをお勧めします。例えば
// Sanity check
System.out.println("The value of 'file' is: " + file);
// Presuming kidsClassRoom1 is an instance of kidsClassRoom
AudioInputStream inputStream = AudioSystem.
getAudioInputStream(
kidsClassRoom1.
getClass().
getResourceAsStream("/resources/"+file));
また、スニペットがリソースに "/" のプレフィックスを使用していることにも注意してください。他の人が言っていることとは反対に、リソース パスの「ルートから」を意味すると確信しています。「/」または「../」を省略すると、クラス ローダーは、これが発生しているクラスのサブパスでリソースを検索します。
もちろん、Wav が Jar に収まるようにしてください。.jar を .zip にコピー/名前変更し、それをダブルクリックすることは、Windows でアーカイブの内容を調べる「手っ取り早い」方法です。