使用Resources导出JAR

时间:2014-01-15 02:26:35

标签: java jar executable-jar

我试图整天解决这个问题,但徒劳无功!!

基本上我想导出一个带有imagestxt文件的JAR(后面可能是一个audio文件)。

我发现我需要创建一个新文件夹,我应该添加我的资源,我做了。

然后我发现我应该使用类似的东西:

pan.add(new JLabel(new ImageIcon(getClass().getResource("/131868.jpg"))));

而不是pan.add(new JLabel(new ImageIcon("/131868.jpg")));我做了

但是我的文字文件

BufferedReader br = new BufferedReader(new FileReader("dictionnaire.txt"));

我使用了BufferedReader br = new BufferedReader(new FileReader((getClass().getResource("dictionnaire.txt")).toString));,但我得到了NullPointerException

没有它,当我制作JAR文件并将其打开为rar时,我找不到我的资源文件夹! SOS

1 个答案:

答案 0 :(得分:4)

嵌入式资源不能像File那样对待,不要把它想象成文件,它只会让你更加困惑,它是一种“资源”,需要区别对待

而不是

BufferedReader br = new BufferedReader(new FileReader("dictionnaire.txt"));

BufferedReader br = new BufferedReader(new FileReader((getClass().getResource("dictionnaire.txt")).toString)); 

您需要使用类似......

的内容
BufferedReader br = new BufferedReader(
    new InputStreamReader(getClass().getResourceAsStream("dictionnaire.txt"));

Class#getResource将返回URL,很多对象都乐意处理URL,但是获得URL {{1}可能会非常麻烦所以InputStream使得在单个调用中实现这一点更容易