Я использую метод ниже для выполнения файла с именем NewFile.java.Получение результата динамического выполнения java-файла
Линия thisMethod.invoke (экземпляр, (объект) m); автоматически запускает NewFile.java и выводит результат [если существует] в консоли , есть в любом случае, что я могу получить результат выполнения в строку
нотабене Указание типа (String) thisMethod.invoke (экземпляр, (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 и распечатать результат, который является нулевым в консоли плагина. Любая помощь? – CSstudent
вам нужно изменить метод, который вы вызываете, чтобы вернуть строку. Если этот метод не возвращает String, вам нужно будет сделать или вызвать другой метод. – greedybuddha
Где строка, которую я собираюсь вернуть? Проблема в том, что я не могу получить результат в переменной – CSstudent