我意识到在SO上也有类似的问题,但是它们并不能完全解决我的问题。
我想要一个给定Class对象的方法,该方法将在该Class(如果存在)上调用“ main”方法,即public static void
main,并捕获该main方法的控制台输出。进行调用的类是非守护线程。
我已经有部分代码了,但是我不确定如何捕获控制台输出,最重要的是,如何仅捕获此特定线程的输出。这是我到目前为止的内容:
public class Output extends Thread {
private Class testClass;
public Output(Class clazz) {
this.testClass = clazz;
}
private Method getMainMethod(Class clazz) {
Method[] methods = clazz.getMethods();
for (Method method : methods) {
if (isMainMethod(method)) {
return method;
}
}
return null;
}
private Boolean isMainMethod(Method method) {
return (method.getName().equals("main") &&
Modifier.isStatic(method.getModifiers()) &&
method.getReturnT