您的位置:首页 > 编程语言 > Java开发

java 调用exe

2015-07-20 11:18 513 查看
    在windows下做java项目时,有时候windows下会有现成的小工具能解决我们项目中的问题,此时通过java调用

windows下的可执行文件就会给我们带来很多便利;

通过java调用windows下的exe有下面两种方式:

1.通过cmd.exe来执行脚本,或者执行某一命令

<span style="font-size:14px;">  public  void MakeTorrent (String filename,String tracker,String torrentname){
try {
System.out.println("开始做种");
Process proc = Runtime.getRuntime().exec( "cmd.exe /c start "+" make_torrent.exe "
+filename+" -t "+tracker+" -o "+torrentname);
} catch (IOException ex) {
ex.printStackTrace();
}
}  </span>


如上例,make_torrent.exe是我已经编译好的windows下的可执行程序,这里通过java调用命令行可直接
执行这一程序,只需向其中传正确的参数即可。

2.直接执行exe

<span style="font-size:14px;">public static void download(String url){
try {
Process proc = Runtime.getRuntime().exec("client_test.exe "+url);
//  Runtime.getRuntime().exec("client_test.exe "+"q");
BufferedReader read = new BufferedReader(new InputStreamReader(
proc.getInputStream()));
new Thread(new Echo(read)).start();
PrintWriter out = new PrintWriter(new OutputStreamWriter(
proc.getOutputStream()));
BufferedReader in = new BufferedReader(new InputStreamReader(
System.in));
String instr = in.readLine();
Runtime.getRuntime().exec("client_test.exe "+"q");
while (!"exit".equals(instr)) {
instr = in.readLine();
out.println(instr);
//              file: // out.println("telnet   192.168.0.1");
out.flush();
}
in.readLine();
read.close();
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}  </span>


这种方法与前一种差不多,但是通过测试有细微差别
第一种方式,通过cmd调用make_torrent.exe执行完毕后,线程会停止,会生成torrent文件;

而如果直接调用make_torrent.exe,线程执行完后必须手动停止当前java程序的运行才会生成torrent文件;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: