是不是你的这个路径有问题,用全名试试,如/home/user/bin/start.sh等

解决方案 »

  1.   

    1 你需要指定你的工作目录,比如参考1楼的用绝对路径
    2 可以这样做,参考 http://www.java2000.net/p9751 我昨天新整理的     Runtime runtime = Runtime.getRuntime();  
         Process process = runtime.exec("cmd /c dir",null,new File("e:/"));  
         InputStream is = process.getInputStream();  
         InputStreamReader isr = new InputStreamReader(is,"GBK");  
         BufferedReader br = new BufferedReader(isr);  exec 的第三个参数就是指定运行的时候的路径你可以顺便看看 ProcessBuilder的用法,这个比 exec 要更舒服一些
      

  2.   

    你把#!/bin/sh 
    改为#!/bin/bash 
    试一下,
      

  3.   

    我这有一个完整的例子,你可以看一下, public static int runSh(String cmd) {
        cmd = "/bin/sh " +cmd;
        try {
          Process pro = Runtime.getRuntime().exec(cmd);
        }
        catch (Exception e) {
          e.printStackTrace();
          return -1;
        }
        return 1;
      }
      

  4.   

    1权限问题 
    2路径问题 先改成绝对路径试试看,如果在当前目录,要写成Process p = rt.exec("./start.sh");