无法运行shell脚本
问题描述:
嗨,我想从下面的代码无法运行shell脚本
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ScriptTest {
public static void main(String[] args){
BufferedReader stdErr=null;
BufferedReader stdIn=null;
try{
System.out.println("In Script");
String[] commands= {"ls"};
Process process = Runtime.getRuntime().exec("/mobilityapps/testScript/testScript.sh");
stdIn= new BufferedReader(new InputStreamReader(process.getInputStream()));
stdErr = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String inline= stdIn.readLine();
String errline =stdErr.readLine();
System.out.println("*Inline*"+inline);
System.out.println("*Errline*"+errline);
while(inline!=null){
System.out.println(inline);
inline=stdIn.readLine();
}
while(errline!=null){
System.out.println(errline);
errline=stdErr.readLine();
}
System.out.println("Process Exit Value: "+process.waitFor());
}catch(Exception excp){
excp.printStackTrace();
}
}
}运行shell脚本
我试图调用脚本是
CURRDATE=`date '+%d%b%Y'`
TIMESTAMP=`date '+%H:%M'`
BASE_PATH=/mobilityapps/testScript
LOGFILE=${BASE_PATH}/logs_${CURRDATE}_${TIMESTAMP}.log
echo ${CURRDATE} ${TIMESTAMP}>>${LOGFILE}
全部都脚本和Java程序在同一个目录下。 当我从PUTTY
运行testScript.sh
运行良好
但是,当我从Java
程序运行Process Exit Value is 255
任何人都可以提出更改?
答
尝试用
Runtime.getRuntime().exec("./mobilityapps/testScript/testScript.sh");
更换路径
Runtime.getRuntime().exec("/mobilityapps/testScript/testScript.sh");
如果只是用/在开始时,就意味着它是一个绝对路径。 使用'。'表示这是一个相对路径。
'Runtime..exec'你有没有考虑升级到'ProcessBuilder'?需要支持1.4还是之前? – 2013-05-09 03:48:04
我正在与java6 – 2013-05-09 03:51:56
嗨,我应该升级到ProcessBuilder – 2013-05-09 03:55:05