【发布时间】:2021-02-26 02:44:19
【问题描述】:
有人可以解决这个问题吗?我使用 sshpass 在 java 上传输文件。执行这个命令
Process proc = Runtime.getRuntime().exec(new String[] {"sshpass","-p", "password","scp","-r",getContext().getServletContext().getRealPath ("/WEB-INF/file/"+today)+"/Name@myip:/cygdrive/d/file"});
在 java 上使用 runtime.exec 并没有显示错误,但在命令行上运行良好。
我的代码
try {
Process proc = Runtime.getRuntime().exec(new String[] {"sshpass","-p", "password","scp","-r",getContext().getServletContext().getRealPath("/WEB-INF/file/"+today)+"/ Name@myip:/cygdrive/d/file"});
// System.out.println(sshStr);
BufferedReader read = new BufferedReader(new InputStreamReader(
proc.getInputStream()));
//--------------------check---------------------
printStream(proc.getInputStream(), "OUTPUT");
printStream(proc.getErrorStream(), "ERROR");
//--------------------check---------------------
try {
proc.waitFor();
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
while (read.ready()) {
System.out.println(read.readLine());
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
【问题讨论】: