This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
getSystemResource() will only consult the "system ClassLoader", while getResource() will consult the ClassLoader the method is called on. The system ClassLoader is the "built-in" one, the one that loads classes from the CLASSPATH when an application starts up. No Java programmer should miss reading Ted Neward's two excellent articles on ClassLoaders here and here.
"Should" meaning "will, generally" or "should" meaning "it is good practice to?" The former, yes. The latter, not especially. If you need multiple ClassLoaders, then they're a good thing. If you don't, then you don't, and that's fine too. Anyway, the answer to your question is that they will, in general, if you don't do anything special -- i.e., if you don't create your own class loader.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com