code: public void startApp(Path applicationFile, String applicationClass, String methodName) throws IOException {
          try {
              System.out.println("Loading : " + applicationFile.toAbsolutePath().toString());
              this.defaultClassLoader = Thread.currentThread().getContextClassLoader();
              this.appClassLoader = URLClassLoader.newInstance(new URL[]{applicationFile.toUri().toURL()}, this.defaultClassLoader);
              Thread.currentThread().setContextClassLoader(this.appClassLoader);
              Thread.getAllStackTraces().keySet().stream().forEach((thread) -> {
                  thread.setContextClassLoader(this.appClassLoader);
              });
              this.appClazz = this.appClassLoader.loadClass(applicationClass);
              final Method method = this.appClazz.getMethod(methodName);
              this.appInstance = this.appClazz.newInstance();
              method.invoke(this.appInstance);
          }
docs: Start the application
  @param applicationFile The application file (e.g. a JAR)
  @param applicationClass The application class (e.g. "de.dimaki.jartest.JarTest")
  @param methodName The method to be called (e.g. "start")
  @throws IOException In case of an error