您好我需要在java中执行几个相互依赖的cmd命令:
cd "C:\Program Files (x86)\puTTY"
pscp -pw pwd F:\Test\file_to_send.txt login@my_ip:/home/bin
我试过这样的方法:
1)
Runtime.getRuntime().exec("cmd /c start F:\\Test\\move_to_linux.bat");
并设置在bat文件中:
cd "C:\Program Files (x86)\puTTY"
pscp -pw pwd F:\Test\file_to_send.txt login@my_ip:/home/bin
2)
try {
String[] command = new String[3];
command[0] = "cmd";
command[1] = "/c";
command[2] = "cd \"C:\\Program Files (x86)\\puTTY\" && pscp -pw pwd F:\\Test\\file_to_send.txt login@my_ip:/home/bin";
Process p = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String Error;
while ((Error = stdError.readLine()) != null) {
System.out.println(Error);
}
while ((Error = stdInput.readLine()) != null) {
System.out.println(Error);
}
} catch (Exception e) {
e.printStackTrace();
}
}
1)cmd在F:\ Test文件夹中打开,命令分别从F:\ Test中单独运行。 在2)' pscp'不被视为内部或外部命令,
答案 0 :(得分:0)
This是如何运行shell命令的一个很好的例子。您无需打开putty来运行系统命令。
您可以使用本机java库来执行shell命令,只需注意这些命令是特定于操作系统的。我之前已经完成了这个项目,我们必须在java中模拟一个shell,一旦你知道你在做什么就很容易。
我建议稍微模块化你的代码。例如