public CGAOperationStatus downloadMetaData() {
CGAOperationStatus retCgaOperationStatus = new CGAOperationStatus();
try {
createDirectoryIfNeeded("/sure/replication/metadata");
String prepareRsyncCommand = "gsutil -m rsync -d -r gs://"
+ storeCredentials.getStoreAccount()
+ "/sure/metadata /sure/replication/metadata'";
Process p = Runtime.getRuntime().exec(prepareRsyncCommand);
p.waitFor();
} catch (Exception e) {
System.out.print("Exception in downloading metadata from GoogleBucket");
retCgaOperationStatus
.setScgaError(CGAError.SCGA_EXCEPTION_OCCURRED);
ExceptionHandler.logException(logger, e);
retCgaOperationStatus.setErrorMessage(e.getMessage());
}
return retCgaOperationStatus;
}
Я установил и Gcloud SDK на Linux машине и я пытаюсь запустить GSUtil команду из Jar File и моя баночка выполнена из какой-либо внешней программы над ssh. Но это просто не работает.Как загрузить Bashrc в Java программы и выполнить команду
Если я выполняю ту же команду вручную, она отлично работает. Может быть, потому что .bashrc загружается, когда я запускаю команду.
Как я могу сделать то же самое из java.
Не работает, я сделал некоторые изменения, как удар Runtime.getRuntime(). Exec (новый String [] { "GSUtil", "-m", "Rsync", "-d", "-r" , "gs: //" + storeCredentials.getStoreAccount() + "/ sure/metadata", "/ sure/replication/metadata"} – Dipak
Извините, я забыл, что это программа python. Вы должны вставить «python» в качестве первой записи в ваш массив: 'new String [] {" python "," gsutil ", ...' – Frank
Все еще не работает :( – Dipak