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

Ben*_*key 7 java resources packages

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

com.dxmio.games.breakout
Run Code Online (Sandbox Code Playgroud)

那么在哪里是放置游戏使用的音频和图像等资源的"最佳实践"场所?

Jon*_*Jon 16

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

{}家/的src/main/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我赞成使用这个约定.如果有一天你想用maven构建项目,它会简化事情. (2认同)

Bra*_*lor 10

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

  • 将您的资源直接放在com/dmxio/games/breakout下的子目录中(例如/com/dmxio/games/breakout/images/foo.gif和/com/dmxio/games/breakout/images/bar.gif)
  • 将您的资源与您的类文件一起放在jar中(例如,breako.jar中捆绑的foo.gif和bar.gif)
  • 将您的资源放在com/dmxio/games/breakout下的子目录中的单独"资源jar"中(例如,绑定在/com/dmxio/games/breakout/images/images.jar中的foo.gif和bar.gif)

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

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