String []cmd ={"cd c:\\","perl exec.pl"};
Process pid = Runtime.getRuntime().exec(cmd);
我的exec.pl程序在c:盘根目录下,我想先进入C盘,然后执行exec.pl.
但是运行后却报一个错误 ,请高手们帮忙分析一下:错误信息:
cmd:[Ljava.lang.String;@4f1d0d
java.io.IOException: Cannot run program "cd c:\": CreateProcess error=2, ?????????

解决方案 »

  1.   

    应该可以这样写:
    //启动
    Process pid = Runtime.getRuntime().exec("exec.pl");
    //等待进程终止
    pid.waitFor();
      

  2.   

    Runtime.getRuntime().exec("perl c:\\exec.pl", null,
                  new File("C:\\"));
      

  3.   


    我试了一下是可以调用的.我按照你写的,我试着在UNIX服务器上用JAVA调用别的程序,还是报错.
    Process p =Runtime.getRuntime().exec("./jre1.6.0_10/bin/java -cp ./jar/xcodeapi.jar:./jar/activation-1.1.jar:./jar/axis2-soapmonitor-1.2.jar:./jar/axis.jar:./jar/axis-ant.jar:./jar/commons-discovery-0.2.jar:./jar/commons-logging-1.0.4.jar:./jar/jaxrpc.jar:./jar/log4j-1.2.8.jar:./jar/mail-1.4.jar:./jar/saaj.jar:./jar/wsdl4j-1.5.1.jar:./jar/xerces.jar:./jar/foclientapi.jar:jar/smsMsgClient.jar:. com.metarnet.sms.Test "+list[i]+" "+"'"+result+"'",null,new File("/usr2/exec_dir/manager/smsMsgClient_Test;"));报错信息:java.io.IOException: Cannot run program "./jre1.6.0_10/bin/java" (in directory "/usr2/exec_dir/manager/smsMsgClient_Test;"): error=2, 无此文件或目录
            at java.lang.ProcessBuilder.start(Unknown Source)
            at java.lang.Runtime.exec(Unknown Source)
            at java.lang.Runtime.exec(Unknown Source)
            at Package_for_java.sms.<init>(sms.java:59)
            at Package_for_java.sms.main(sms.java:81)
    Caused by: java.io.IOException: error=2, 无此文件或目录
            at java.lang.UNIXProcess.forkAndExec(Native Method)
            at java.lang.UNIXProcess.<init>(Unknown Source)
            at java.lang.ProcessImpl.start(Unknown Source)
            ... 5 more
      

  4.   

    把java所在路径放到PATH变量里,Process p =Runtime.getRuntime().exec("java"......
      

  5.   


    ./jre1.6.0_10/bin/java 是把这个写入环境变量里面吗?