【问题标题】:In Java, where in the package/source hierarchy should resources be placed?在 Java 中,资源应该放在包/源层次结构中的什么位置?
【发布时间】:2010-11-05 01:08:25
【问题描述】:

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

com.dxmio.games.breakout

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

【问题讨论】:

    标签: java resources packages


    【解决方案1】:

    我已经看到了很多不同的处理方式:

    • 将您的资源直接放在com/dmxio/games/breakout 下的子目录中(例如/com/dmxio/games/breakout/images/foo.gif/com/dmxio/games/breakout/images/bar.gif

    • 将资源与类文件一起放入 jar 中(例如 foo.gifbar.gif 捆绑在 breakout.jar 中)

    • 将您的资源放在com/dmxio/games/breakout 下子目录中的单独“资源jar”中(例如foo.gifbar.gif 捆绑在/com/dmxio/games/breakout/images/images.jar 中)

    我倾向于最后一个选项。

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

    【讨论】:

      【解决方案2】:

      您始终可以对您的项目采用标准的 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

      或者:)这里的另一个答案的方法很好......

      【讨论】:

      • +1 我赞成使用这种约定。如果有一天你想用 maven 构建项目,它会简化事情。
      • 绝对 +1 以遵守 Maven 约定。这是一个不错的标准结构,如果您曾经使用过 Maven,它会有所帮助,而且其他开发人员也会立即知道如何绕过它。
      猜你喜欢
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 2010-12-15
      • 1970-01-01
      • 2013-02-21
      相关资源
      最近更新 更多