private Method getMethod(Object object, String name) {
        Class<?> klass = object.getClass();
        while (klass != null) {
            for (Class<?> iface : klass.getInterfaces()) {
                for (Method method : iface.getMethods()) {
                    if (name.equals(method.getName())) {
                        return method;
                    }
                }
            }
            klass = klass.getSuperclass();
        }
        return null;
    }
Starts a forked server process using the standard input and output
streams for communication with the parent process. Any attempts by
stray code to read from standard input or write to standard output
is redirected to avoid interfering with the communication channel.

@param args command line arguments, ignored
@throws Exception if the server could not be started
tika-core/src/main/java/org/apache/tika/fork/ForkServer.java