私は、この小さな Java プロジェクトを実行して、さまざまな MP3 ファイルを開きました。そのために、JLayer 1.0.1 ライブラリをダウンロードしてプロジェクトに追加しました。また、MP3 ファイルをプロジェクトのパッケージに追加し、いくつかの JPG 画像もそこから取得できるようにしました。ハッシュマップ (mapa) とこのメソッドを使用して取得しています。
public static String consiguePath (int i) {
return AppUtils.class.getClass().getResource("/Movimiento/" + mapa.get(i)).getPath();
}
絶対パスを避けるように。
MP3 ファイルを開くときは、次のようにします。
try {
File archivo = new File(AppUtils.consiguePath(12));
FileInputStream fis = new FileInputStream(archivo);
BufferedInputStream bis = new BufferedInputStream(fis);
try {
Player player = new Player(bis);
player.play();
} catch (JavaLayerException jle) {
}
} catch (IOException e) {
}
すべてが NetBeans で完全に動作しますが、.jar ファイルを作成して実行すると、うまく動作しますが、MP3 ファイルを開けません。私の注意を引いたのは、同じパッケージにある JPG ファイルを開く際に問題がないことです。
.jar を生成した後、MyProject/build/classes/Movimiento フォルダーを確認したところ、すべての MP3 ファイルが実際にそこにあったため、何が起こっているのかわかりません。
以前に他の人がこの問題を抱えているのを見たことがありますが、満足のいく答えはまだ見たことがありません。
ありがとう!