汤姆数码解答网 _ www.otarim.com
首页 电脑常识 互联网 操作系统 软件应用 硬件相关 电脑安全 数码产品 手机相关 笔记本 其它相关 编程
栏目导航
首页 > 编程 > 正文

怎么在java程序中调用linux命令或者shell脚本

作者:用户发布来源:汤姆数码解答网发布时间:2018-7-9


有人知道怎么在java程序中调用linux命令或者shell脚本,谢啦。


网友交流

怎么调用shell脚本呢?在java程序中怎么调用linux的命令?

这里不得不提到java的process类了。

process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。

process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。

至于详细的process类的介绍放在以后介绍。

另外还要注意一个类:Runtime类,Runtime类是一个与JVM运行时环境有关的类,这个类是Singleton的。

这里用到的Runtime.getRuntime()方法是取得当前JVM的运行环境,也是java中唯一可以得到运行环境的办法。(另外,Runtime的大部分方法都是实例方法,也就是说每次运行调用的时候都需要调用到getRuntime方法)

下面说说Runtime的exec()方法,这里要注意的有一点,就是public Process exec(String [] cmdArray, String [] envp);这个方法中cmdArray是一个执行的命令和参数的字符串数组,数组的第一个元素是要执行的命令往后依次都是命令的参数,envp感觉应该和C中的execve中的环境变量是一样的,envp中使用的是name=value的方式。

下面说一下,怎么样使用process来调用shell脚本

例如,我需要在linux下实行linux命令:sh test.sh,下面就是执行test.sh命令的办法:

这个var参数就是日期这个*2包的名字。

String shpath="/test/test.sh"; //程序路径

Process process =null;

String command1 = chmod* + shpath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();

String var="*2"; //参数

String command2 = /bin/sh + shpath + + var;
Runtime.getRuntime().exec(command2).waitFor();

更多话题
上一篇:<代码如下;html><head><title>TODOsupp 下一篇:请提供代码 如题,谢谢了。 java 有个时间是yyyy年MM月dd日中怎么提取出单独的年,月,日
[汤姆数码解答网 _ www.otarim.com] 本站信息来自网友发布,本站无法保证其内容真实性,请用户一定仔细辨别。联系QQ:885 971 98