I've been trying to use ClassLoader.getResources(String). The entire application is in one named module, this includes the code that invokes the ClassLoader method and the resource that it is trying to find. The Javadoc says:
"Resources in named modules are subject to the encapsulation rules specified by Module.getResourceAsStream. Additionally, and except for the special case where the resource has a name ending with ".class", this method will only find resources in packages of named modules when the package is opened unconditionally (even if the caller of this method is in the same module as the resource)." https://docs.oracle.com/javase/9/docs/api/java/lang/ClassLoader.html#getResources-java.lang.String- The call to ClassLoader.getResources(String) does not find the resource. I assume that this is because of the last clause in the spec "even if the caller of this method is in the same module as the resource". But I can't for the life of me think why such a difficult to meet restriction has been added. The only way around it is to make the package open, which is far from ideal. If its all within one module, applying an access restriction like this is just unhelpful. Stephen