简体   繁体   中英

In Java, where in the package/source hierarchy should resources be placed?

Say I have developed a game, and placed it in the package structure:

com.dxmio.games.breakout

Where then is the 'best practice' place to put resources like audio and images that the game uses?

You can always adopt a standard Maven approach to your project and put all application source files in:

{home}/src/main/java/com/dmxio/games/breakout

and then your resources live in:

{home}/src/main/resources/com/dmxio/games/breakout

and your tests then live in:

{home}/src/test/java/com/dmxio/games/breakout

This structure is a standard convention to structuring projects in the Maven world. It brings a lot of advantages with it, which you may want to look at. You can check out the resources section here: Apache Maven Guides - How do I add resources to my JAR

Alternatively :) the other answer's approach here is just fine...

I have seen this handled in a number of different ways:

  • Place your resources directly in a subdirectory under com/dmxio/games/breakout (eg /com/dmxio/games/breakout/images/foo.gif and /com/dmxio/games/breakout/images/bar.gif )

  • Place your resources in a jar along with your class files (eg foo.gif and bar.gif bundled in breakout.jar )

  • Place your resources in a separate 'resources jar' in a subdirectory under com/dmxio/games/breakout (eg foo.gif and bar.gif bundled in /com/dmxio/games/breakout/images/images.jar )

I tend to favor the last option.

You can then use the java.lang.Class.getResource() method to retrieve your resources.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM