读取音频文件时出现NullPointer异常

时间:2013-03-24 18:15:14

标签: java audio jar executable-jar

我制作了一个读取音频文件的程序。 起初我是用绝对路径做的,因为它更容易开发。
然后我将它改为相对路径,因为我想将它压缩为*jar。 所以我编写了这个方法(起初只是在代码之后很短的时间:

1.: at first I make a FileArray to save the Files
2.: make the array to save the AudioClip
3.: for loop to read the Clips

现在代码:

    private AudioClip[] liesAudioDateien (File inputFile) {
        File[] dateFileArray;
        AudioClip[] tracks;
        dateFileArray = inputFile.listFiles();
        tracks = new AudioClip[dateFileArray.length];
        for (int i = 0; i < tracks.length; i++) {
            if (dateFileArray[i].isFile()) {
                try {
                    tracks[i] = Applet.newAudioClip(dateFileArray[i].toURL());
                } catch (IOException ex) {
                    System.err.println("Error!: -- " + ex.toString());
                }
            }

        }
        return tracks;   
    }

inputFile.listfiles()返回null,因为我的路径似乎不行。 但我的路径是好的,因为我让它在命令行上打印。 D:\Eclipse\MyProjekt\dist\MyProject.jar\audio。 在NetBeans中,它确实有效。 If I make a jar file, it doesn't work.

我已经尝试过:

  1. D:\Eclipse\MyProjekt\dist\MyProject.jar\audio\
  2. /代替\

1 个答案:

答案 0 :(得分:1)

您确定这是正确的文件路径吗?

D:\Eclipse\MyProjekt\dist\MyProject.jar\audio

音频目录位于名为MyProject.jar 的文件夹中?

如果您的音频文件位于.jar文件中,则无法使用File类列出它们。你需要做的是read the entries from the .jar file, like in this question