如何在java中运行依赖的cmd命令

时间:2014-05-26 14:24:26

标签: java cmd

您好我需要在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'不被视为内部或外部命令,

1 个答案:

答案 0 :(得分:0)

This是如何运行shell命令的一个很好的例子。您无需打开putty来运行系统命令。

您可以使用本机java库来执行shell命令,只需注意这些命令是特定于操作系统的。我之前已经完成了这个项目,我们必须在java中模拟一个shell,一旦你知道你在做什么就很容易。

我建议稍微模块化你的代码。例如

  1. 阅读用户输入
  2. 解析用户输入
  3. 返回错误或执行命令