private static ResourceLoader getResourceLoader() {
        if (impl != null) return impl;
        Class<? extends ResourceLoader> clazz = null;
        String userDefinedImpl = System.getProperty(PROPERTY_RESOURCE_LOADER_IMPLEMENTATION, null);
        
        if (userDefinedImpl != null) {
            LOGGER.log(Level.FINE, "Loading user defined ResourceLoader implementation {0}", userDefinedImpl);
            clazz = findResourceLoaderClass(userDefinedImpl);
        }

        if (clazz == null) {
            LOGGER.log(Level.FINE, "No usable user defined ResourceLoader implementation found, using default implementation {0}", DEFAULT_IMPL);
            clazz = findResourceLoaderClass(DEFAULT_IMPL);
        }

        if (clazz == null) {
            throw new RuntimeException("No ResourceLoader implementation found");
        }

        try {
            impl = (ResourceLoader) clazz.getDeclaredConstructor().newInstance();
        } catch (final Throwable e) {
            throw new RuntimeException("Could not instantiate ResourceLoader class " + clazz.getName(), e);
        }

        return impl;
    }
The property name to set the ResourceLoader to use. Should be set automatically
by the JmeSystemDelegate. 
Note: changing this property after the first use of the ResourceLoader will have no effect.
jme3-core/src/main/java/com/jme3/util/res/Resources.java