I use InputStreams to do the load that way I can have it in either class path or physical file or some other stream source. InputStream jasperStream = getClass().getResourceAsStream("/Foo.jasper"); JasperReport report = (JasperReport) JRLoader.loadObject(jasperStream);