我最初在项目目录中有 .mid文件,我得到了这样的内容:
File file = new File("hmr.mid");
一切正常,然后我尝试将其导出到 runnable .jar ,因为当我稍后尝试访问该文件时,我有 NullPointerException 。
我已经读过我应该将资源添加到包中,所以我这样做了:
http://kepfeltoltes.hu/140326/115027543proj_www.kepfeltoltes.hu_.png
从那以后,我做了大量的谷歌搜索,SOF搜索,看了很多例子(我想大多数人都弄错了,例如使用绝对路径),阅读这样的文章:
但没有任何效果。当我导出到.jar时,我得到 NullPointerException ,但即使我只是运行它。
这是我的资源加载器,我的尝试有些遗留。它适用于图像。
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
public class ResourceLoader {
static ResourceLoader rl = new ResourceLoader();
public static Image getImage(String filename)
{
return Toolkit.getDefaultToolkit().getImage(rl.getClass().getResource(filename));
}
public static File getFile(String filename)
{
//InputStream is = rl.getClass().getResourceAsStream("hmr.mid");
//URL url = Thread.currentThread().getContextClassLoader().getResource("hmr.mid");
//File file = new File(url.toString());
//url = File.class.getClassLoader().getResource("/Users/peti/Documents/workspace/java_workspace/BluesBox_v0_21/200_Stlye/resources/hmr.mid");
//File file = new File(url.getFile());
//File file = new File("/Users/peti/Documents/workspace/java_workspace/BluesBox_v0_21/200_Stlye/resources/hmr.mid");
//File file = new File("src/200_Stlye/resources/hmr.mid");
File file = new File("hmr.mid");
return file;
}
}
答案 0 :(得分:1)
使用getClass()时,应使用资源的相对路径.getResource()
例如“/hmr.mid”
在这种情况下,请确保填充在类路径中。