如何获取我的资源的网址?

问题描述:

我注意到,当我尝试加载资源(图像,数据,声音文件等)时,不可能将它放在与源代码相同的文件中,只需键入“soundfiles/sound.wav”即可。什么是得到这个网址的最佳方式?如何获取我的资源的网址?

具体位置:

// load wave data from buffer 
WaveData wavefile = WaveData.create("spaceinvaders/" + path); 

我已经在许多不同的方式这样做之前,只是想知道的最佳方式是什么。

如果您在罐子运输您的应用它也打包资源罐中,并使用类加载器访问这些常见的方式:

//jar structure 
your.jar 
|--com 
| `--... //classes here 
`--resources 
    `--spaceinvaders 
     `--sound.wav 

和代码访问权限:如果

InputStream resource = getClass().getClassLoader().getResourceAsStream("resources/spaceinvaders/sound.wav"); 
+0

它是一个applet ,我会使用相同的代码吗? – 2012-01-13 17:21:53

+0

@StevenRogers,试试吧。它应该工作。顺便说一句,请查看http://docs.oracle.com/javase/1.5.0/docs/guide/lang/resources.html – 2012-01-13 17:29:04

+0

这不起作用。我现在正在使用LWJGL,并且必须将类路径设置为lwjgl jar库以使其运行。所以当我'getResource ..“它返回LWJGL库的URL而不是我自己的。有没有办法解决这个问题? – 2012-01-13 17:44:33