In the previous Java Q&A; article, "Smartly Load Your Properties," you observed how loading resources via classloaders can help decouple application logic from the details of the application's disk location. Although that article put some emphasis on loading .properties definitions, the real message was how it was done: by loading them through the classpath. As long as you can load a piece of data via an InputStream, you can also do it via ClassLoader.getResourceAsStream(), which hides the disk location details behind the classloader façade.