Я использую ProcessBuilder для загрузки с Git. Это мой текущий код:
Process process = null;
try {
String[] command = {"git", "clone", gitLink};
ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.directory(new File(gitPath));
process = processBuilder.start();
System.out.println("\n*** Console output is:");
InputStream processStdOutput = process.getInputStream();
Reader r = new InputStreamReader(processStdOutput);
BufferedReader br = new BufferedReader(r);
String line;
while ((line = br.readLine()) != null) { System.out.println("\t" + line); }
process.getOutputStream().close();
} catch (IOException e) { e.printStackTrace(); }
finally { if (process != null) { process.destroy(); } }
Таким образом, gitLink
будет реальной ссылкой на репозиторий, который я хочу загрузить, а gitPath
- это место, куда он будет загружен на мой ПК. gitPath
, кажется, работает, поскольку я протестировал его, выполнив команду ls
. gitLink
, однако, ничего не показывает. Я получаю Git-репозиторий на секунду (в правильной папке gitPath
), а затем он исчезает. Кроме того, когда я использую фактическую ссылку для Git-репозитория вместо переменной gitLink
, она отлично работает. По какой-то причине ему не нравится переменная gitLink.
Вот код, который работает:
String[] command = {"git", "clone", "https://some-rep.git"};
При прочих равных условиях.