我正在尝试从 Java 代码运行 shell 脚本。
外壳脚本:
function print() {
echo "First Script"
}
print
echo "Hello"
Java 代码:
final String cmd = "sh test.sh";
final Process p = Runtime.getRuntime().exec(cmd);
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
is = p.getErrorStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
System.out.println(line);
}
但是当我运行上面的代码时,我得到了这个错误test.sh: 1: Syntax error: "(" unexpected
。
当我在命令行中尝试时,相同的代码工作正常并且我能够看到输出。我也尝试dos2unix
并运行了 java 代码,但仍然没有运气。任何形式的帮助将不胜感激。