1
아래 메소드를 사용하여 NewFile.java라는 파일을 실행하고 있습니다.Java 파일의 동적 실행 결과 얻기
줄 thisMethod.invoke (instance, (Object) m); 자동 내가 의 문자열
N.B.를 실행의 결과를 얻을 수 있다는 것을 어쨌든 거기는 NewFile.java를 실행하고 [존재하는 경우]를 콘솔에 결과를 출력 (String) thisMethod.invoke (instance, (Object) m)로 타입 변환; 작동하지 않았다 .. 그것은 null을 제공합니다.
public static void runIt(String fileToCompile,String packageName) throws ClassNotFoundException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException, SecurityException, NoSuchMethodException
{
File file = new File(fileToCompile);
try
{
URL url = file.toURL(); // file:/classes/demo
URL[] urls = new URL[] { url };
ClassLoader loader = new URLClassLoader(urls);
Class<?> thisClass = classLoader.loadClass("NewFile");
Object newClassAInstance = thisClass.newInstance();
Class params[] = new Class[1];
params[0]=String[].class;
Object paramsObj[] = {};
String m=null;
Object instance = thisClass.newInstance();
Method thisMethod = thisClass.getDeclaredMethod("main", params);
r2+="method = " + thisMethod.toString();
String methodParameter = "a quick brown fox";
thisMethod.invoke(instance,(Object)m);
}
catch (MalformedURLException e)
{
}
}
원본 Eclipse의 콘솔에서 실행 결과를 인쇄하고 플러그인 콘솔에서 null 인 결과를 인쇄하도록 플러그인에서 작업 중입니다. 도움이 필요하십니까? – CSstudent
String을 반환하도록 호출하는 메서드를 변경해야합니다. 해당 메서드가 String을 반환하지 않으면 다른 메서드를 만들거나 호출해야합니다. – greedybuddha
내가 돌려 줄 문자열은 어디 있습니까 ?? 문제는 변수에서 결과를 얻을 수 없다는 것입니다. – CSstudent