shell脚本以及java调用shell并传参
2012-02-21 16:39
603 查看
在者就是java中怎样调用shell脚本 及怎样给shell传参
网上找到好几种写法(实质都是Runtime.getRuntime().exec();方法不同重载形式):' v- a9 g, r/ @. a' }
* O2 Y! h+ J: a$ Y
第一>>>>:String[] cmd = new String[length];
cmd[0] = "./shllName.sh";
for(int i =0; i < list.size(); i ++){
2 Y0 m- Z1 A( s* \2 ^5 y& [" n+ v
/ w+ m: H+ T9 ?) B" W7 X" Z
cmd[i] = list.get(i); //对字符串数组赋值(这就是给shell脚本传的参数)
" c# z S: j! x/ l; }# G) Z& T M
: S+ G8 R+ ]9 V( Q1 h5 H0 p7 a
}
第二>>>:Sring[] cmd = {"/bin/sh/", "-c", "parma1", "param2"....};
第三>>>: 把调用shell及参数直接写在放在中即 Process pcs = Runtime.getRuntime().exec("sh shellName.sh 'param1' 'param2'...");. y- }1 W! x* ?0 `1 w
例子:
Process pcs = Runtime.getRuntime().exec(cmd);
% q( H" B5 K4 X6 k6 b+ L! |
V8 D+ T' p8 T! w, R1 }
//若不加这下面的代码也调不成功shell脚本
InputStreamReader ir = new InputStreamReader(pcs.getInputStream());
$ H9 O3 Z- |* G- S! W4 X2 _
LineNumberReader input = new LineNumberReader(ir);
9 v$ u& M' Y: v% f9 D
String line = null;
while ((line = input.readLine()) != null){
System.out.println(line); & V0 D% z* t E+ F/ l9 f8 W- H
}
if(null != input){
input.close();
}
if(null != ir){
ir.close();
} 1 A% b4 T" b3 v( }
int extValue = pcs.waitFor(); //返回码 0 表示正常退出 1表示异常退出
网上找到好几种写法(实质都是Runtime.getRuntime().exec();方法不同重载形式):' v- a9 g, r/ @. a' }
* O2 Y! h+ J: a$ Y
第一>>>>:String[] cmd = new String[length];
cmd[0] = "./shllName.sh";
for(int i =0; i < list.size(); i ++){
2 Y0 m- Z1 A( s* \2 ^5 y& [" n+ v
/ w+ m: H+ T9 ?) B" W7 X" Z
cmd[i] = list.get(i); //对字符串数组赋值(这就是给shell脚本传的参数)
" c# z S: j! x/ l; }# G) Z& T M
: S+ G8 R+ ]9 V( Q1 h5 H0 p7 a
}
第二>>>:Sring[] cmd = {"/bin/sh/", "-c", "parma1", "param2"....};
第三>>>: 把调用shell及参数直接写在放在中即 Process pcs = Runtime.getRuntime().exec("sh shellName.sh 'param1' 'param2'...");. y- }1 W! x* ?0 `1 w
例子:
Process pcs = Runtime.getRuntime().exec(cmd);
% q( H" B5 K4 X6 k6 b+ L! |
V8 D+ T' p8 T! w, R1 }
//若不加这下面的代码也调不成功shell脚本
InputStreamReader ir = new InputStreamReader(pcs.getInputStream());
$ H9 O3 Z- |* G- S! W4 X2 _
LineNumberReader input = new LineNumberReader(ir);
9 v$ u& M' Y: v% f9 D
String line = null;
while ((line = input.readLine()) != null){
System.out.println(line); & V0 D% z* t E+ F/ l9 f8 W- H
}
if(null != input){
input.close();
}
if(null != ir){
ir.close();
} 1 A% b4 T" b3 v( }
int extValue = pcs.waitFor(); //返回码 0 表示正常退出 1表示异常退出
相关文章推荐
- java调用并执行shell脚本以及问题总结
- Java调用shell脚本遭遇的问题以及解决办法
- java调用shell脚本,解决传参和权限问题
- java调用shell脚本并传参
- Java之怎么通过java去调用并执行shell脚本以及问题总结(转)
- 在Java中执行脚本命令以及调用外部程序说明
- linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)
- java调用shell脚本小案例
- java动态传参调用python脚本
- 在Java中动态传参调用Python脚本
- java调用shell脚本,并获得结果集的例子
- java 调用shell脚本
- 如何在java程序中调用linux命令或者shell脚本
- Linux下的matlab 以及shell脚本调用matlab
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
- java 调用bash shell脚本阻塞的小问题的解决
- 如何在java程序中调用linux命令或者shell脚本
- 如何在java程序中调用linux命令或者shell脚本
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
- java调用shell脚本,并获得结果集的例子