快速业务通道

教你在Java中执行其它程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
is.is = is; this.type = type; this.debug = debug; } public void run() { try { PrintWriter pw =  null; InputStreamReader isr = new InputStreamReader(is); BufferedReader br =  new BufferedReader(isr); String line = null; while ((line = br.readLine())  != null) { output.add(line); if (debug) System.out.println(type + ">" +  line); } if (pw != null) pw.flush(); } catch (IOException ioe)  { ioe.printStackTrace(); } } public List getOutput() { return  output; } } public class Test5 { public static void main(String args []) { try { List list = new ArrayList(); ProcessBuilder pb =  null; Process p = null; // list the files and directorys under C:\ list.add("CMD.EXE"); list.add("/C"); list.add("dir"); pb = new ProcessBuilder (list); pb.directory(new File("C:\\")); p = pb.start(); // process error and output message StreamWatch errorWatch  = new StreamWatch(p.getErrorStream(), "ERROR"); StreamWatch outputWatch = new  StreamWatch(p.getInputStream(), "OUTPUT"); // start to  watch errorWatch.start(); outputWatch.start(); //wait for exit int  exitVal = p.waitFor(); //print the content from ERROR and  OUTPUT System.out.println("ERROR: " + errorWatch.getOutput()); System.out.println ("OUTPUT: " + outputWatch.getOutput()); System.out.println("the return code is  " + exitVal); } catch (Throwable t) { t.printStackTrace(); } } }

教你在Java中执行其它程序(7)

时间:2011-10-02 Java学习室 终南

7、在Java中执行Java程序

执行一个Java程序的关键在于:

(1)知道JAVA虚拟机的位置,即java.exe或者java的路径

(2)知道要执行的java程序的位置

(3)知道该程序所依赖的其他类的位置

举一个例子,一目了然。

(1)待执行的Java类

public class MyTest { public static void main(String[] args) { System.out.println("OUTPUT one"); System.out.println("OUTPUT two"); System.err.println("ERROR 1"); System.err.println("ERROR 2"); for(int i = 0; i < args.length; i++) { System.out.printf("args[%d] = %s.", i, args[i]); } } }

(2)执行该类的程序

import java.util.*; import java.io.*; class StreamWatch extends Thread { InputStream is; String type; List output = new ArrayList(); boolean debug = false; StreamWatch(InputStream is, String type) { this(is, type, false); } StreamWatch(InputStream is, String type, boolean debug) { this.is = is; this.type = type; this.debug = debug; } public void run() { try { PrintWriter pw = null; InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line = null; while ((line = br.readLine()) != null) { output.add(line); if (debug) System.out.println(type + ">" + line); } if (pw != null) pw.flush(); } catch (IOException ioe) { ioe.printStackTrace(); } } public List getOutput() { return output; } } public class Test6 { public

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号