在Java中,应该在包/源层次结构中放置资源吗?

时间:2009-06-23 02:25:35

标签: java resources packages

假设我开发了一款游戏,并将其放入包装结构中:

com.dxmio.games.breakout

在哪里可以放置游戏使用的音频和图像等资源的“最佳实践”?

2 个答案:

答案 0 :(得分:15)

您始终可以对项目采用标准Maven方法,并将所有应用程序源文件放在

{家} / SRC /主/ JAVA / COM / dmxio /游戏/突围

然后你的资源就在

{家} / SRC /主/资源/ COM / dmxio /游戏/突围

您的测试随后会存在:

{家} / SRC /测试/ JAVA / COM / dmxio /游戏/突围

此结构是在Maven世界中构建项目的标准惯例。它带来了许多优点,您可能需要关注它。您可以在此处查看资源部分:

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

或者:)这里的另一种方法就好了......

答案 1 :(得分:9)

我已经看到过这种处理方式有多种:

  • 直接将资源放入 子目录下 com / dmxio / games / breakout(例如 /com/dmxio/games/breakout/images/foo.gif 和 /com/dmxio/games/breakout/images/bar.gif)
  • 将资源放在一个罐子里 与您的类文件(例如foo.gif 和bar.gif捆绑在breakout.jar)
  • 将您的资源放在一个单独的位置 'resources jar'在子目录中 在com / dmxio / games / breakout下(例如 foo.gif和bar.gif捆绑在一起 /com/dmxio/games/breakout/images/images.jar)

我倾向于支持最后一个选项。

然后,您可以使用java.lang.Class.getResource()方法检索资源。