java程序里调用linux命令1.Java调用shell
Java语言以其跨平台性和简易性而著称,在Java里面的lang包里(java.lang.Runtime)提供了一个允许Java程序与该程序所运
行的环境交互的接口,这就是Runtime类 , 在Runtime类里提供了获取当前运行环境的接口 。
其中的exec函数返回一个执行shell命令的子进程 。exec函数的具体实现形式有以下几种:
public Process exec(String command) throws IOException
public Process exec(String command,String[] envp) throws
IOException
public Process exec(String command,String[] envp,File dir) throws
IOException
public Process exec(String[] cmdarray) throws IOException
public Process exec(String[] cmdarray, String[] envp) throws
IOException
public Process exec(String[] cmdarray, String[] envp,File dir)
throws IOException
我们在这里主要用到的是第一个和第四个函数,具体方法很简单,就是在exec函数中传递一个代表命令的字符串 。exec函数返回的是一个Process类
型的类的实例 。Process类主要用来控制进程,获取进程信息等作用 。(具体信息及其用法请参看Java doc) 。
1)执行简单的命令的方法:
代码如下:
上面的代码首先是声明了一个代表命令的字符串commands,它代表了ls -l
这个命令 。之后我们用Runtime.getRuntime().exec(commands)来生成一个子进程来执行这个命令,如果这句话运行成功,则
命令 ls -l 运行成功(由于没有让它显示,不会显示ls -l
的结果) 。后面的流操作则是获取进程的流信息,并把它们一行行输出到屏幕 。2)执行带有参数的命令(尤其是参数需要用引号的)时则需要用String的数组来表示整个命令,而且要用转义符把引号的特殊含义去除,例如我们要执行
find / -name "*mysql*" -print 时 , 用如下代码
Java 可以通过 Runtime 调用Linux命令,形式如下:
Runtime.getRuntime().exec(command)
但是这样执行时没有任何输出,因为调用 Runtime.exec 方法将产生一个本地的进程,并返回一个Process子类的实例(注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例)该实例可用于控制进程或取得进程的相关信息 。
由于调用 Runtime.exec 方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过 Process.getOutputStream(),Process.getInputStream(),Process.getErrorStream() 方法重定向给它的父进程了 。
用户需要用这些stream来向子进程输入数据或获取子进程的输出,下面的代码可以取到 linux 命令的执行结果:
Linux常用命令总结 ps 命令的作用是显示进程信息的;
| 符号linux命令call,是个管道符号 , 表示ps 和 grep 命令同时执行;
grep 命令是查找(Global Regular Expression Print),能使用正则表达式搜索文本,然后把匹配的行显示出来;
ps命令有一些参数linux命令call:
-e : 显示所有进程
-f : 全格式
-h : 不显示标题
-l : 长格式
-w : 宽输出
a :显示终端上的所有进程,包括其他用户的进程 。
r :只显示正在运行的进程 。
u :以用户为主的格式来显示程序状况 。
x :显示所有程序 , 不以终端机来区分 。
结果信息从前到后依次是:
UID PID PPID C STIME TTY TIME CMD
zzw 14124 13991 0 00:38 pts/0 00:00:00 grep –color=auto dae
Linux中的top命令显示系统上正在运行的进程 。它是系统管理员最重要的工具之一 。被广泛用于监视服务器的负载 。top命令是一个交互命令 。在运行top的时候还可以运行很多命令 。
N – 以 PID 的大小的顺序排列表示进程列表
推荐阅读
- 小明玩射击游戏的视频,小明开枪游戏规则
- 宝安马帮erp管理系统的简单介绍
- 国外1.8服务器ip大全,国外服务器配置
- 普适计算与普适gis,普适计算的两个关键特性是什么
- 函数可变参数python python函数的可变参数有哪几种
- wordpress新特性的简单介绍
- 单机游戏愤怒的小鸟下载,愤怒的小鸟这款游戏
- erp系统扫码,erp扫描
- linux删除~文件命令 linux删除文件命令rm