如何在java程序中调用linux命令或者shell脚本
来源:互联网 发布:java月薪 编辑:程序博客网 时间:2024/06/10 11:24
http://blog.sina.com.cn/s/blog_6433391301019bpn.html
在java程序中如何调用linux的命令?如何调用shell脚本呢?
这里不得不提到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参数就是日期这个201102包的名字。
注意:
1
我为什么要使用 chmod 777命令呢?在有的机器上面,可能没有设置权限问题。这是你在linux下面执行shell脚本需要注意的问题。没有的话,就需要添加权限,就用chmod 777,否则在执行到Runtime.getRuntime().exec的时侯会出现Permission denied错误。
2
waitFor()这个也是必不可缺的,如果你需要执行多行命令的话,把waitFor()这个加上。
0 0
- 如何在java程序中调用linux命令或者shell脚本
- 如何在java程序中调用linux命令或者shell脚本
- 如何在java程序中调用linux命令或者shell脚本
- 如何在java程序中调用linux命令或者shell脚本
- 如何在java程序中调用linux命令或者shell脚本
- 如何在java程序中调用linux命令或者shell脚本
- java工具(一)----如何在java程序中调用linux命令或者shell脚本及 画图
- java程序中调用linux命令或者shell脚本
- java中调用linux命令或者脚本
- linux下如何在程序中调用shell命令
- 在Android APK中调用底层linux命令或者脚本
- 在linux如何在程序中调用shell命令启动另一个程序
- 在android程序中调用shell命令与脚本
- 在android程序中调用shell命令与脚本
- 在java中调用Linux命令/脚本
- 在shell脚本中如何调用hadoop 命令
- java调用Linux的命令或者脚本
- Linux中,shell脚本调用java程序模板
- Hdu 1002 A + B Problem II(大整数加法)
- getHibernateTemplate.find()和session.createQuery()方法总结
- 38.To make audit information more productive, the DBA executes the following command before starting
- coreseek+php之sphinx扩展安装+php调用示例
- Linux下PHP+MySQL+CoreSeek中文检索引擎配置
- 如何在java程序中调用linux命令或者shell脚本
- Java中JDBC的常见封装
- Valid Sudoku
- Pool tag list
- 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)
- 初始化内存管理
- deepin安装vsftpd(仅配置篇--续--虚拟用户篇)
- 物理内存的管理
- slab分配器