【发布时间】:2010-11-05 01:08:25
【问题描述】:
假设我开发了一个游戏,并将其放在包结构中:
com.dxmio.games.breakout
那么,放置游戏使用的音频和图像等资源的“最佳实践”位置在哪里?
【问题讨论】:
假设我开发了一个游戏,并将其放在包结构中:
com.dxmio.games.breakout
那么,放置游戏使用的音频和图像等资源的“最佳实践”位置在哪里?
【问题讨论】:
我已经看到了很多不同的处理方式:
将您的资源直接放在com/dmxio/games/breakout 下的子目录中(例如/com/dmxio/games/breakout/images/foo.gif 和/com/dmxio/games/breakout/images/bar.gif)
将资源与类文件一起放入 jar 中(例如 foo.gif 和 bar.gif 捆绑在 breakout.jar 中)
将您的资源放在com/dmxio/games/breakout 下子目录中的单独“资源jar”中(例如foo.gif 和bar.gif 捆绑在/com/dmxio/games/breakout/images/images.jar 中)
我倾向于最后一个选项。
然后您可以使用java.lang.Class.getResource() 方法检索您的资源。
【讨论】:
您始终可以对您的项目采用标准的 Maven 方法并将所有应用程序源文件放入:
{home}/src/main/java/com/dmxio/games/breakout
然后你的资源就在:
{home}/src/main/resources/com/dmxio/games/breakout
然后你的测试就会存在:
{home}/src/test/java/com/dmxio/games/breakout
这种结构是在 Maven 世界中构建项目的标准约定。它带来了很多优点,您可能想看看。您可以在此处查看资源部分:Apache Maven Guides - How do I add resources to my JAR
或者:)这里的另一个答案的方法很好......
【讨论】: