2012-09-16 39 views
3

在Eclipse中,我有一个项目,我跟我这样调用例如我的资源文件夹,应与运行的JAR?

URL url = FighterComponent.class.getResource("/gfx/characters/"); 
File file = new File(url.getPath() + info.name + "/" + frame.path); 

/GFX /是一个资源的文件夹里面的资源工作。水库是我必须这样做我的链接资源文件夹:

运行>运行配置...>类路径>选择用户条目>高级>添加文件夹

我现在的问题是,应该在哪里res文件夹是在我将我的项目导出到可运行的jar中以供我的朋友测试之后?我尝试将它放在与我的jar和我的jar文件相同的文件夹中,并且URL都为null。

有什么想法?

+0

作为回答说,这些资源需要是罐内。其结果是,你展示的代码,创建一个'File',将无法正常工作,因为资源将是一个zip文件中的条目,而不是文件在自己的权利。您只需将它们作为URL或流处理。 –

回答

2

访问的资源。如果名称以'/'('\u002f')开始,然后是资源的绝对名称是继'/'的名字的一部分。

所以,你应该有jar文件内GFX /字符的目录。在该目录下,如果你有一个image.jpg的资源,你将不得不使用检索它:

URL url = TheClass.class.getResource("/gfx/characters/image.jpg"); 

您还可以使用getResourceAsStream()得到一个InputStream,你可以读出。

+0

我也试过,没有工作。 (内容来自RES入瓦罐) –

+0

不要试图读取文件。从调用getResourceAsStream得到的InputStream中读取。不要把一个res目录里面的jar,但只是gfx/... –

0

你可以把它放在你的jar的根。那么,人们将能够通过/res/gfx/..