我想下載svn數據,不幸的是它在svn + ssh url上,所以我必須始終輸入密碼。要通過一個程序調用獲取所有版本,我想跳過輸入的密碼。爲此,我需要爲skript輸入密碼,所以至少我不能用簡單的shell skript來做到這一點,所以我嘗試了Java。我實際工作中寫的方法是這樣的:如何將密碼傳遞給Runtime.exec
public static void main(String args[]) throws InterruptedException,
IOException {
String user = args[0];
String passwd = args[1];
String url = args[2];
String command = "svn checkout svn+ssh://" + user + "@" + url;
Process p = Runtime.getRuntime().exec(command);
System.out.println("Start");
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
p.getOutputStream()));
BufferedReader inp = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stderr = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line = "";
System.out.println("Waiting...");
while (line!=null)
{
Thread.sleep(100);
if (inp.ready())
{
line = inp.readLine();
System.out.println("Line: " + line);
}
if (stderr.ready())
{
line = stderr.readLine();
System.out.println("Line: " + line);
}
}
out.write(passwd + '\n');
out.write(passwd + '\n');
p.waitFor();
}
不幸的是,這是行不通的。我甚至沒有在輸出中得到Password-Enter-Thing,它只寫在控制檯上。有誰知道如何傳遞密碼?
我一直在尋找這個,但答案是「閱讀啤酒(我正在閱讀它)或通過 - 密碼給svn密碼,這在我的情況不起作用。有沒有人知道如何要解決這個問題?
問候 DaGeRe
您無法爲SSH設置公鑰認證? – Joni
「--password」在什麼意義上不起作用? –