Как запустить команды git из java?

Пользователь

от jedidiah.brown , в категории: Java , год назад

Как запустить команды git из java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rebekah , год назад

@jedidiah.brown 

Вы можете запустить команды Git из Java, используя класс ProcessBuilder. Пример следующий:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class GitCommandRunner {

    public static void main(String[] args) throws IOException {
        // Укажите путь к вашему репозиторию Git
        String repositoryPath = "path/to/your/repository";

        // Создание команды Git
        String gitCommand = "git status";

        // Создание процесса для выполнения команды
        ProcessBuilder processBuilder = new ProcessBuilder();
        processBuilder.command("bash", "-c", gitCommand);
        processBuilder.directory(new File(repositoryPath));

        // Запуск команды и получение вывода
        Process process = processBuilder.start();
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }

        // Ожидание завершения команды
        try {
            int exitCode = process.waitFor();
            System.out.println("
Код завершения: " + exitCode);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}


Вы можете изменить переменную gitCommand для выполнения любых других Git-команд.

Пользователь

от chloe.keebler , год назад

@jedidiah.brown 

Вы можете запустить команды Git из Java, используя класс ProcessBuilder. Вот пример кода, демонстрирующий этот подход:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class GitCommandRunner {

    public static void main(String[] args) {
        String gitCommand = "git status"; // замените на нужную вам команду Git
        
        try {
            Process process = new ProcessBuilder(gitCommand.split(" "))
                    .redirectErrorStream(true)
                    .start();

            // Читаем вывод команды Git
            InputStream inputStream = process.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            // Ожидаем завершения команды Git
            int exitCode = process.waitFor();
            System.out.println("Ко***** Git завершилась с кодом: " + exitCode);

        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}


Вам нужно заменить git status в строке String gitCommand = "git status"; на нужную вам команду Git. В приведенном примере вывод команды Git направляется на консоль Java. Вы можете изменить это поведение, направляя вывод в файл или обрабатывая его с помощью ваших собственных логических правил.