code: public static BshClassManager createClassManager( Interpreter interpreter )
      {
          BshClassManager manager;
  
          // Do we have the optional package?
          if ( Capabilities.classExists("bsh.classpath.ClassManagerImpl") )
              try {
                  // Try to load the module
                  // don't refer to it directly here or we're dependent upon it
                  Class<?> clazz = Capabilities.getExisting("bsh.classpath.ClassManagerImpl");
                  manager = (BshClassManager) clazz.getConstructor().newInstance();
              } catch ( IllegalArgumentException | ReflectiveOperationException | SecurityException e) {
                  throw new InterpreterError("Error loading classmanager", e);
              }
          else
              manager = new BshClassManager();
  
          manager.declaringInterpreter = interpreter;
          return manager;
      }
docs: Create a new instance of the class manager.
  Class manager instnaces are now associated with the interpreter.
  
  @see bsh.Interpreter.getClassManager()
  @see bsh.Interpreter.setClassLoader( ClassLoader )