使用Ressources导出JAR [英] Exporting a JAR with Ressources
问题描述
我试图整天解决这个问题,但徒劳无功!!
I was trying to solve this problem the whole day but in vain !!
基本上我想用图像导出JAR
和一个 txt
文件(后者可能是音频
文件)。
Basically I want to export a JAR with images
and a txt
file (and latter maybe an audio
file).
我发现我需要创建一个新的文件夹,我应该添加我的资源,我做了。
I found that I need to make a new folder within I should add my resources, I did.
然后我发现我应该使用类似的东西:
then I found that I should use something like :
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
and without it, when I make the JAR file and open it as rar
I don't find my resource folder !!!! SOS
推荐答案
嵌入式资源不能被视为文件
,不要把它想象成一个文件,它只会让你感到困惑,它只是一个资源,需要区别对待
An embedded resources can not be treated like a File
, don't think of it like a file, it will only confuse you more, it is a "resource" and needs to be treated differently
而不是
BufferedReader br = new BufferedReader(new FileReader("dictionnaire.txt"));
或
BufferedReader br = new BufferedReader(new FileReader((getClass().getResource("dictionnaire.txt")).toString));
您将需要使用类似......
You will need to use something like...
BufferedReader br = new BufferedReader(
new InputStreamReader(getClass().getResourceAsStream("dictionnaire.txt"));
Class#getResource
将返回 URL
,很多对象很乐意处理 URL
,但是要获得 URL
'可能会很麻烦s InputStream
,所以 Class#getResourceAsStream
可以更轻松地在一次通话中实现这一目标
Class#getResource
will return a URL
, many objects are happy to deal with a URL
, but it can be messy having to get a URL
's InputStream
, so Class#getResourceAsStream
makes it easier to achieve this in a single call
这篇关于使用Ressources导出JAR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!