首页  ·  知识 ·  编程语言
java调用Shell脚本
网友  其它 |   Java  编辑:德仔   图片来源:网络
在你的test.sh的第一行加入 #!/bin/sh 然后在shell下运行chmod a+x test.sh就可以把你的test.sh变成可执行文
在你的test.sh的第一行加入
#!/bin/sh
然后在shell下运行chmod a+x test.sh就可以把你的test.sh变成可执行文件了。
另外,要提醒的是你的java程序运行的目录和你shell用户可能不同,所以建议用全路径,比如
Runtime.getRuntime().exec ("/root/bin/test.sh");
----------------------------------------------------------------------------------------------
如果需要输出信息的话 
   Process process = Runtime.getRuntime().exec("/root/bin/test.sh");
   InputStreamReader ir = new InputStreamReader(process.getInputStream());
   LineNumberReader input = new LineNumberReader(ir);
   String line;
   while ((line = input.readLine()) != null)
    System.out.println(line);
   input.close();
   ir.close();
-----------------------------------------------------------------------------------------------
注意UNIX系统的权限问题 =..=
-----------------------------------------------------------------------------------------------
完整代码:
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class RunShell {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
   //Runtime.getRuntime().exec("/root/bin/test.sh");
   Process process = Runtime.getRuntime().exec("/root/bin/test.sh");
   InputStreamReader ir = new InputStreamReader(process
     .getInputStream());
   LineNumberReader input = new LineNumberReader(ir);
   String line;
   while ((line = input.readLine()) != null)
    System.out.println(line);
   input.close();
   ir.close();
} catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
}
}
}
 
本文作者:网友 来源:其它 |
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读