Java项目执行linux脚本
一、脚本文件测试(test.sh)
脚本文件(test.sh)
注意:(如果要写linux的脚本文件,最后在linux的环境下去写。如果在window下写的脚本文件,直接复制到linux环境下去执行,可能会出现编码的问题,执行脚本会出现错误。)
DATETIME=`date+'%Y%m%d'`; 在linux环境下获取当前日期的参数
使用的方法:$DATETIME
1、显示所在目录的文件
utmsapp@UTMS-DBS-T-01:/utmsapp$ls–l
2、创建新的文件(test.sh)
utmsapp@UTMS-DBS-T-01:/utmsapp$vimtest.sh
ls -l
3、查看自己写的脚本文件
utmsapp@UTMS-DBS-T-01:/utmsapp$cattest.sh
4、执行自己写的脚本文件,执行后的结果
utmsapp@UTMS-DBS-T-01:/utmsapp$/bin/sh test.sh
总用量 124
-rw-r--r-- 1utmsapp weblogic 537 2月 23 17:15test.java
-rw-r--r-- 1utmsapp weblogic 6 2月 27 14:10test.sh
二、Java程序执行脚本代码
try{
// "utmsapp/test.sh" 该参数是脚本所在的文件目录
String[] cmd = newString[]{"/bin/sh", "-C", "/utmsapp/test.sh"};//需要执行的脚本(test.sh) ,-C要大写的C
Process ps =Runtime.getRuntime().exec(cmd);
BufferedReader br = newBufferedReader(new InputStreamReader(ps.getInputStream()));
StringBuffer sb = newStringBuffer();
String line;
while ((line =br.readLine()) != null) {
sb.append(line).append("\n");
}
String result =sb.toString();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}