There seem to be two problems.
First, as Ishai says File.toURI, it seems like you need to verify that a file without a trailing separator is a directory. This is probably a mistake.
Secondly, the wildcard for recursive subdirectories is '-' not '*'.
So your policy file should look like this:
grant {
permission java.io.FilePermission "C:\\class\\-", "read";
permission java.io.FilePermission "C:\\class", "read";
permission java.lang.RuntimePermission "createClassLoader";
};
Also, if you use URLClassLoader.newInstance, you do not need permissions createClassLoader, and you get a complete implementation of the class loader.
source
share