运行外部程序

时间:2012-01-24 07:36:26

标签: java

使用java运行程序和使用命令行运行程序有什么区别?在第一种情况下它不起作用,但在第二种情况下它工作正常。

爪哇:

try {
    Runtime runtime = Runtime.getRuntime();
    Process proc = runtime.exec("../../../my/prog \"//10.124.12.15/C:/output/*\" ../../../input/345 -N -A");
    DataInputStream bis = new DataInputStream(proc.getInputStream());
    int _byte;
    while ((_byte = bis.read()) != -1)
        System.out.print((char)_byte);
    proc.waitFor();
} catch (IOException ex) {
    ex.printStackTrace();
} catch (InterruptedException ex) {
    ex.printStackTrace();
}

AND命令:

../../../my/prog "//10.124.12.15/C:/output/*" ../../../input/345 -N -A

2 个答案:

答案 0 :(得分:2)

尝试使用绝对路径。也许那是你的问题。

答案 1 :(得分:0)

谢谢大家,我解决了我的问题:

try {
    String cmd="/progs/my/prog //10.124.12.15/C:/output/* /temp/input/345 -N -A" 
    Runtime runtime = Runtime.getRuntime();
    Process proc = runtime.exec(
       new String[]{"/usr/bin/bash", "-c", cmd, "1>/dev/null 2>&1"});    
    proc.waitFor();
} catch (IOException ex) {
    ex.printStackTrace();
} catch (InterruptedException ex) {
    ex.printStackTrace();
}