Carregando arquivos com o ClassLoader

Este problema tem me incomodado por um tempo. Eu tenho que carregar alguns arquivos no meu aplicativo java, e a única maneira que eu comecei a trabalhar até agora parece com isso:

URL hsURL;
if(System.getProperty("os.name").toLowerCase().contains("windows")) {
    hsURL = new URL("file:/" + System.getProperty("user.dir") + "/helpsets/helpset.hs");
}
else {
    hsURL = new URL("file://" + System.getProperty("user.dir") + "/helpsets/helpset.hs");
}

Mas isso é feio e terrível. Por um tempo eu pensei que tinha esse trabalho:

hsURL = ClassLoader.getSystemResource("helpsets/helpset.hs");

Mas isso não funciona mais por algum motivo (eu devo ter mudado alguma coisa e não percebido. Ela retorna null.

Devo estar usando getResource () em vez de getSystemResource () (em caso afirmativo, por que é getSystemResource () estático, mas não getResource ())?

Eu estou usando o eclipse e tentei incluir a pasta no caminho de compilação (classpath) e não incluí-lo, não parece fazer a diferença.

questionAnswers(2)

yourAnswerToTheQuestion