0

私は次のコードを持っています

System.out.println("Path::: "+path);
InputStream resource = this.getClass().getResourceAsStream(path);

現在のパスは次のとおりです:src / resources / FF / 1-Battle.mp3

これは私のフォルダ構造です:

src 
 |- resources
 |    |- FF
 |    |   |- 1-Battle.mp3
 |- folder
 |    |- prog.java   <- this is the place where the code is run

問題は、リソース(入力ストリーム)がnullになってしまうことです

これはjarファイルから機能する必要があるため、ハードディスクディレクトリではなくjarファイルのルートディレクトリから相対的である必要があります。したがって、jarファイル内ではファイルがjava.io.Fileに分類できないため、ファイルを作成できません。

4

3 に答える 3

2

なぜあなたはそれを使ってそれを読むことができないのですFileInputStreamか?このようなもの:-

InputStream fileStream = new FileInputStream(new File(path));

パスが適切な相対URLであることを確認してください。

于 2013-03-10T09:32:48.113 に答える
0

プログラムが実行される場所への相対パスを使用してみましたか?'../../resources/FF/1-Battle.mp3 "のように?

于 2013-03-10T09:33:06.587 に答える
0

mp3ファイルはsrcフォルダー内にあるため、jarファイル内からmp3ファイルを読み取ろうとしているようです。これを試して:

    try {
        ClassLoader cl = this.getClass().getClassLoader();            
        InputStream resource = cl.getResource("resources/1-battle.mp3").openStream();
    }
    catch(Exception ug) {
        System.out.println("Failed to load mp3 from jar:" + ug.toString());
    }
于 2013-03-10T11:41:33.673 に答える