2012-01-13 4 views
1

Я заметил, что когда я пытаюсь загрузить ресурс (изображение, данные, звуковой файл и т. Д.), Невозможно поместить его в тот же файл, что и исходный код, и просто введите «soundfiles/sound.wav». Каков наилучший способ получить этот URL?Как получить URL-адрес для моих ресурсов?

Конкретно здесь:

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

Что, если это апплет , я бы использовал один и тот же код? –

+0

@StevenRogers, попробуйте. Он должен работать. Кстати, проверьте это http://docs.oracle.com/javase/1.5.0/docs/guide/lang/resources.html –

+0

Это не работает. Я использую LWJGL прямо сейчас, и мне нужно установить путь класса к библиотекам jwjgl jar, чтобы он даже запускался. Поэтому, когда я 'getResource .. ", он возвращает URL-адрес библиотек LWJGL, а не мой собственный. Есть ли способ обойти это? –

Смежные вопросы