java如何调用外部程序
2017-03-15 20:50
405 查看
引言;有时候有些项目需求,直接使用java编写比较麻烦,所有我们可能使用其他语言编写的程序来实现。那么我们如何在java中调用外部程序,幸好
java为我们提供了这样的功能。
一.调用外部程序接口
方法1.
Process p=Runtime.getRuntime.exec("cmd")(最常用)
方法2.
Process p=new ProcessBuilder(cmd).start()
但是一般方法一比较常用, 下面我们介绍下方法一中关于抽象Process类的常用函数
其中前3个函数用的最多
二.代码实战
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class testProcess {
public static void main(String[]args) throws IOException, InterruptedException{
Runtime r=Runtime.getRuntime();
Process p=r.exec("python /home/cristo/桌面/test.py");
InputStream is=p.getInputStream();
InputStreamReader ir=new InputStreamReader(is);
BufferedReader br=new BufferedReader(ir);
String str=null;
while((str=br.readLine())!=null){
System.out.println(str);
}
//获取进程的返回值,为0正常,为2出现问题
int ret=p.waitFor();
int exit_v=p.exitValue();
System.out.println("return value:"+ret);
System.out.println("exit value:"+exit_v);
}
}
test.py中内容
for i in range(10):
print("current i value:%s\n"%i)
程序执行结果:
current i value:0
current i value:1
current i value:2
current i value:3
current i value:4
current i value:5
current i value:6
current i value:7
current i value:8
current i value:9
return value:0
exit value:0
java为我们提供了这样的功能。
一.调用外部程序接口
方法1.
Process p=Runtime.getRuntime.exec("cmd")(最常用)
方法2.
Process p=new ProcessBuilder(cmd).start()
但是一般方法一比较常用, 下面我们介绍下方法一中关于抽象Process类的常用函数
//向对应程序中输入数据 abstract public OutputStream getOutputStream(); //获得对应程序的输出流(没写错) abstract public InputStream getInputStream(); //获得程序的错误提示 abstract public InputStream getErrorStream(); //等待程序执行完成,返回0正常,返回非0失败 abstract public int waitFor() throws InterruptedException; //获得程序退出值,0正常退出,非0则异常 abstract public int exitValue(); //销毁进程 abstract public void destroy();
其中前3个函数用的最多
二.代码实战
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class testProcess {
public static void main(String[]args) throws IOException, InterruptedException{
Runtime r=Runtime.getRuntime();
Process p=r.exec("python /home/cristo/桌面/test.py");
InputStream is=p.getInputStream();
InputStreamReader ir=new InputStreamReader(is);
BufferedReader br=new BufferedReader(ir);
String str=null;
while((str=br.readLine())!=null){
System.out.println(str);
}
//获取进程的返回值,为0正常,为2出现问题
int ret=p.waitFor();
int exit_v=p.exitValue();
System.out.println("return value:"+ret);
System.out.println("exit value:"+exit_v);
}
}
test.py中内容
for i in range(10):
print("current i value:%s\n"%i)
程序执行结果:
current i value:0
current i value:1
current i value:2
current i value:3
current i value:4
current i value:5
current i value:6
current i value:7
current i value:8
current i value:9
return value:0
exit value:0
相关文章推荐
- oracle如何使用java source调用外部程序
- Java如何调用外部exe程序
- oracle如何使用java source调用外部程序
- 如何使用java程序界面上的按钮启动外部的exe程序
- java调用外部程序挂起原因
- [java调用外部可执行程序] 2. java输入输出重定向
- Java调用外部程序
- [MySQL FAQ]系列 -- mysql如何调用系统外部程序
- Java调用外部程序
- 不用ide编译java程序时如何调用jar包
- Java调用外部程序解决方案
- java调用外部程序执行
- Java如何调用外部外部命令?
- windows下如何解决PHP调用的外部程序超时阻塞问题
- Java调用外部程序的方法
- ABAP--一个极好的调用外部java程序的Search Help Exit的实例(RFC好例子)
- 【java.lang】〖Runtime〗如何正确地应用Runtime类调用程序
- 如何在iPhone程序中调用外部命令
- 如何在iPhone程序中调用外部命令
- 如何让Delphi调用外部程序并等待其运行结束