这个老哥写的很好,但是我在执行过程钟遇到了两个问题,希望大家可以避坑。

  1. 权限
[root@localhost: /home/keyan]$ chmod +x testShell.sh

2.注意这个.sh 的编码格式。

其实所有准备若当,就是无法读取里面的数据,执行shell指令,原因就是:

注意事项:

1.shell脚本必须有执行权限,比如部署后chmod -R 777 /webapps

2.shell文件,必须是UNIX格式,ANSI编码格式,否则容易出问题(可以用notepad++,编辑->文档格式转换,格式->转为ANSI格式(UNIX格式)

1.给XXX.sh文件赋予可执行权限

Linux中运行Java程序时 参考这篇文章。

有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本。而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法:

复制代码
Process exec(String command)
在单独的进程中执行指定的字符串命令。

Process exec(String[] cmdarray)
在单独的进程中执行指定命令和变量。

Process exec(String[] cmdarray, String[] envp)
在指定环境的独立进程中执行指定命令和变量。

Process exec(String[] cmdarray, String[] envp, File dir)
在指定环境和工作目录的独立进程中执行指定的命令和变量。

Process exec(String command, String[] envp)
在指定环境的单独进程中执行指定的字符串命令。

Process exec(String command, String[] envp, File dir)
在有指定环境和工作目录的独立进程中执行指定的字符串命令。

cmdarray: 包含所调用命令及其参数的数组。
command: 一条指定的系统命令。
envp: 字符串数组,其中每个元素的环境变量的设置格式为name=value;如果子进程应该继承当前进程的环境,则该参数为 null。
dir: 子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为 null。