Process Runtime pass input

后端 未结 4 888
执笔经年
执笔经年 2021-01-03 15:02

I have rsync command to be run in a java program...the problem i am facing is that rsync requires a password to be entered and i am not understanding how to pass this passwo

4条回答
  •  慢半拍i
    慢半拍i (楼主)
    2021-01-03 15:46

    I was gonna post this code sample:

    Process rsyncProc = Runtime.exec ("rsync");
    OutputStreanm rsyncStdIn = rsyncProv.getOutputStream ();
    rsyncStdIn.write ("password".getBytes ());
    

    But Vineet Reynolds was ahead of me.

    As Vineet Reynolds pointed out using such approach will require an additional piece of code to detect when rsync requires a password. So using an external password file seems to be an easier way.

    P.S.: There may be a problem related to the encoding, it can by solved by converting the string to a byte array using appropriate encoding as described here.

    P.P.S.: It seems that I can't yet comment an answer, so I had to post a new one.

提交回复
热议问题