我想知道如何使用Java11在远程计算机中创建文件/目录?
我确实尝试使用:
process = Runtime.getRuntime()
.exec("ssh root@" + hostname + " 'mkdir -p "+mdbDir+"'")
.wait() or waitFor();
但是即使使用wait(),我也遇到了异常
java.lang.IllegalThreadStateException: process has not exited
请让我知道可以做什么。
您可以使用以下代码来获取进程退出代码和错误消息:
public class SshDirMaker {
public static void main(String[] args) throws IOException, InterruptedException {
String hostname = "host";
String mdbDir = "/mydir";
Process process = Runtime.getRuntime().exec("ssh root@" + hostname + " 'mkdir -p " + mdbDir + "'");
process.waitFor();
System.out.println("exit code " + process.exitValue());
System.out.println("error message" + readInputStreamAsString(process.getErrorStream()));
}
private static String readInputStreamAsString(InputStream in) throws IOException {
BufferedInputStream bis = new BufferedInputStream(in);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result = bis.read();
while (result != -1) {
byte b = (byte) result;
buf.write(b);
result = bis.read();
}
return buf.toString();
}
}
.waitFor()如果需要等待进程终止,则应使用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。