svn 데이터를 다운로드하고 싶습니다. 불행히도 svn + ssh url에 있으므로 암호를 항상 입력해야합니다. 하나의 프로그램 호출로 모든 버전을 얻으려면 암호 입력을 건너 뛰고 싶습니다. 이를 위해 필자는 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에 --password를 통해 암호를 입력합니다. 내 경우에는 작동하지 않습니다. 이?
안부 DaGeRe
SSH에 공개 키 인증을 설정할 수 없습니까? – Joni
'--password'는 어떤 의미로 작동하지 않습니까? –