#java #git
Я могу запускать команды, git add, git commit, прямо из Git. Но есть ли какие-либо методы, чтобы я мог запускать команды непосредственно из java.
Ответы
Ответ 1
Не знаю как это описать на русском. Но в Java есть класс Runtime для соответствующей работы. У него есть метод getRuntime(), который возвращает соответствующий приложению Runtime, а также есть метод exec(String command), который в отдельном процессе запускает команду, представленную переданной строкой. Возвращаемый объект :py:class::java.lang.Process и может быть использован для управления выполнением этого процесса. Собственно их и можно использовать. Пример: Runtime.getRuntime().exec("git add"); Естественно с try/catch и прочими проверяющими конструкциями P.S. Нашел описание методов на русском, чтоб ознакомиться проще было. Источник ilnurgi1.ru: class java.lang.Runtime getRuntime() - Возвращает соответсвующий приложению Runtime exit(int status) public void - Осуществляет завершение программы с кодом завершения status (при использовании этого метода особое внимание нужно уделить обработке исключений - выход будет осуществлен моментально, и в конструкциях try-catch-finally управление в finally передано не будет) gc() public native void - Сигнализирует сборщику мусора о необходимости запуска freeMemory() public native long - Возвращает количество свободной памяти. В некоторых случаях это количество может быть увеличено, если вызвать у объекта Runtime метод gc() totalMemory() public native long - Возвращает суммарное количество памяти, выделенное Java машине. Это количество может из изменяться даже в течении одного запуска, что зависит от реализации платформы на которой запущена Java машина. Так-же, не стоит закладываться на объем памяти, занимаемой одним определенным объектом - эта величина так же зависит от реализации Java машины. loadLibrary(String libname) public void - Загружает библиотеку с указанным именем. Обычно загрузка библиотек производится следующим образом: в классе, использующем native реализации методов, добавляется статический инициализатор, например: static { System.loadLibrary("LibFile"); } Таким образом, когда класс будет загружен и инициализирован, необходимый код для реализации native методов так-же будет загружен. Если будет произведено несколько вызовов загрузки библиотеки с одним и тем-же именем - произведен будет только первый, а все остальные будут проигнорированы. load(String filename) public void - Подгружает файл с указанным названием в качестве библиотеки. В принципе, этот метод работает так-же как и метод load(), только принимает в качестве параметра именно название файла, а не библиотеки, тем самым позволяя загрузить любой файл с native кодом. runFinalization() public void - Производит запуск выполнения методов finalize() у всех объектов, этого ожидающих exec(String command) public Process - В отдельном процессе запускает команду, представленную переданной строкой. Возвращаемый объект :py:class::java.lang.Process может быть использован для управления выполнением этого процесса.
Комментариев нет:
Отправить комментарий