code: boolean processSelf(Collection<String> classes) throws IOException {
          options.add("--add-modules");
          options.add("java.se.ee,jdk.xml.bind"); // TODO why jdk.xml.bind?
  
          if (classes.isEmpty()) {
              Path modules = FileSystems.getFileSystem(URI.create("jrt:/"))
                                        .getPath("/modules");
  
              // names are /modules/<modulename>/pkg/.../Classname.class
              try (Stream<Path> paths = Files.walk(modules)) {
                  Stream<String> files =
                      paths.filter(p -> p.getNameCount() > 2)
                           .map(p -> p.subpath(1, p.getNameCount()))
                           .map(Path::toString);
                  return doModularFileNames(files);
              }
          } else {
              return doClassNames(classes);
          }
      }
docs: Processes the class files from the currently running JDK,
  using the jrt: filesystem.
  
  @return true for success, false for failure
  @throws IOException if an I/O error occurs