svn データをダウンロードしたいのですが、残念ながら svn+ssh の URL にあるため、常にパスワードを入力する必要があります。1 回のプログラム呼び出しですべてのバージョンを取得するには、パスワードの入力を省略したいと考えています。これにはskriptにパスワードを入力する必要があるので、せめて単純なシェルskriptではこれができないので、Javaにしてみました。私が実際に書いたメソッドは次のようになります。
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すら表示されません。コンソールにのみ書き込まれます。パスワードを渡す方法を知っている人はいますか?
私はいつもこれを検索しましたが、「スタウトも読む(すでに読んでいます)か、--passwordを介してsvnにパスワードを与えるという答えがありましたが、これは私の場合は機能しません。これを解決する方法を知っている人はいますか?
よろしくDaGeRe