2012-01-13 50 views
1

我注意到,當我嘗試加載資源(圖像,數據,聲音文件等)時,不可能將它放在與源代碼相同的文件中,只需鍵入「soundfiles/sound.wav」即可。什麼是得到這個網址的最佳方式?如何獲取我的資源的網址?

具體位置:

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

我已經在許多不同的方式這樣做之前,只是想知道的最佳方式是什麼。

回答

2

如果您在罐子運輸您的應用它也打包資源罐中,並使用類加載器訪問這些常見的方式:

//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