Я пытаюсь получить доступ к SVN через команду процесса в Java как часть большого графического интерфейса, чтобы увидеть, какие файлы находятся в SVN.После долгих исследований я значительно усовершенствовал свои методы, однако до сих пор не могу этого сделать.Если я запускаю код в графическом интерфейсе, он просто зависает.Чтобы выяснить, что это за проблема, я упростил ее и запустил как консольную программу.Когда я запустил его там, он отобразил запрос на мой набор ключей GNOME.Мой код вводит пароль, но консоль, похоже, не принимает его.Мой код выглядит следующим образом:
public class SvnJavaTest{
public static void main(String[] args){
try {
String[] commands = {"svn", "ls", "https://svnserver"};
Process beginProcess = Runtime.getRuntime().exec(commands, null, new File("/home/users/ckorb/Desktop"));
BufferedReader br = new BufferedReader(new InputStreamReader(beginProcess.getInputStream()));
BufferedWriter write = new BufferedWriter(new OutputStreamWriter(beginProcess.getOutputStream()));
write.write("password");
write.flush();
String line=br.readLine();
while (line != null){
System.out.println(line);
line =br.readLine();
}
br.close();
write.close();
beginProcess.waitFor();
} catch (IOException e1) {
e1.printStackTrace();
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
}
Я не получаю никаких ошибок при этом, и если я ввожу свой пароль вручную в консоль, а затем запускаю его, он работает, потому что запоминает мой пароль.Я посмотрел и обнаружил, что есть некоторые пакеты, которые автоматически вводят мой брелок при входе в систему, но на самом деле это не вариант.Большое спасибо.