2009-06-23 1 views
6

Say Я разработал игру, и поместил его в структуре пакета:В Java, где в иерархии пакета/источника должны быть размещены ресурсы?

com.dxmio.games.breakout 

Где же «лучшая практика» место для размещения ресурсов, таких как аудио и изображений, которые используются в игре?

ответ

9

Я видел это обрабатывается в ряде различных способов:

  • Место ваши ресурсы непосредственно в подкаталог ком/dmxio/игры/развинчивания (например, /ком/dmxio/игры/прорыве /images/foo.gif и /com/dmxio/games/breakout/images/bar.gif)
  • Поместите свои ресурсы в банку вместе с файлами класса (например, foo.gif и bar.gif комплектного in breakout.jar)
  • Разместите свои ресурсы в отдельном «ресурсе jar» в подкаталоге по com/dmxio/games/breakout (например, foo.gif и bar.gif в комплекте /com/dmxio/games/breakout/images/images.jar)

Я, как правило, в пользу последнего варианта.

Затем вы можете использовать метод java.lang.Class.getResource() для извлечения ваших ресурсов.

15

Вы всегда можете принять стандартный Maven подход к вашему проекту и поместить все исходные файлы приложения в

{дом}/SRC/основные/Java/COM/dmxio/игры/прорыве

, а затем вы ресурсы живут в

{дом}/SRC/основные/ресурсы/ком/dmxio/игры/прорыве

тесты тогда жить:

{дом}/SRC/тест/java/com/dmxio/games/breakout

Эта структура является стандартным соглашением о структурировании проектов в мире Maven. Это приносит с собой много преимуществ, на которые вы можете смотреть. Вы можете проверить раздел ресурсов здесь:

http://maven.apache.org/guides/getting-started/index.html#How_do_I_add_resources_to_my_JAR

В качестве альтернативы :) Другой подход здесь просто отлично ...

+2

+1 Я за помощью к этой конвенции. И это упрощает, если когда-нибудь вы захотите построить проект с помощью maven. –

+0

Согласен с Andreas_D - спасибо за информацию. –

+0

Определенно +1 для прикрепления к конвенции Maven. Это достойная стандартная структура, поможет, если вы когда-либо используете Maven, а другие разработчики сразу узнают, как перемещаться по этому пути. – mikera