#jar #java #классы
Каким образом вызвать исполнение jar файла из java программы(т.е. из нее будет осуществляться вызов другой java программы)? (хотелось бы увидеть пример) Каким образом вызвать исполнение class файла из java программы(т.е. из нее будет осуществляться вызов другой java программы)? (хотелось бы увидеть пример)
Ответы
Ответ 1
Для исполнения любой внешней программы: Process proc = Runtime.getRuntime().exec("java -jar A.jar"); ну и аналогично можно и класс исполнить. Вариант 2: ProcessBuilder pb = new ProcessBuilder("java", "-jar", "A.jar"); pb.directory(new File("/working/directory")); Process proc = pb.start();Ответ 2
В том же процессе можно выполнить нужный метод нужного класса с помощью reflection. Ниже пример вызова статического метода main(String[] args). try { //Загружаем класс с именем className Class targetClass = Class.forName(className); //Находим метод с именем "main" и списком параметров String[] Class[] argTypes = new Class[]{String[].class}; Method mainMethod = targetClass.getDeclaredMethod("main", argTypes); //В качестве параметра передаем пустой массив Object[] arguments = new Object[]{new String[0]}; mainMethod.invoke(null, arguments); } catch (ClassNotFoundException ex) { //handle exception } catch (NoSuchMethodException ex) { //handle exception } catch (InvocationTargetException ex) { //handle exception } catch (IllegalAccessException ex) { //handle exception }
Комментариев нет:
Отправить комментарий