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

问题是资源(输入流)最终为空

这需要从 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

看起来您正试图从 jar 文件中读取 mp3 文件,因为 mp3 文件位于您的 src 文件夹中。尝试这个:

    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 回答
0

您是否尝试使用程序执行位置的相对路径?像“../../resources/FF/1-Battle.mp3”?

于 2013-03-10T09:33:06.587 回答