调用外部应用程序(譬如VB,有应用程序窗口的情况)
import java.io.*;
public class execOP {
public execOP(){
//TODO
}
/**
* 執行外部的程序(參數為數組).返回程序的輸出(不具有輸入的功能)
* @param appParam 程序及參數組成的數組(每個參數為一個數組成員)
* @return
* @throws Exception
*/
public String execExternalApp(String []appParam) throws Exception{
String str="";
Process proc=Runtime.getRuntime().exec(appParam);
DataInputStream in = new DataInputStream(proc.getInputStream());
DataInputStream error = new DataInputStream(proc.getErrorStream());
try
{
String tmp="";
while ((tmp= in.readLine()) != null) {
str+="控制台輸出:"+tmp+"\n";
//System.out.println("控制台?出:"+tmp);
}
while ((tmp= error.readLine()) != null) {
str+="錯誤輸出:"+tmp+"\n";
//System.out.println("???出:"+tmp);
}
}
catch(Exception e)
{
System.out.println("獲取應用程序輸出時發生IO錯誤"+e.getMessage());
}
return str;
}
/**
* 執行外部的程序(參數為字符串).返回程序的輸出(不具有輸入的功能)
* @param appParam 程序及參數組成的數組(每個參數為一個數組成員)
* @return
* @throws Exception
*/
public String execExternalApp(String appParam) throws Exception{
String str="";
Process proc = Runtime.getRuntime().exec(appParam);
DataInputStream in = new DataInputStream(proc.getInputStream());
DataInputStream error = new DataInputStream(proc.getErrorStream());
try{
String tmp="";
while ((tmp= in.readLine()) != null) {
str+="空隻台輸出:"+tmp+"\n";
//System.out.println("控制台?出:"+tmp);
}
while ((tmp= error.readLine()) != null) {
str+="錯誤輸出:"+tmp+"\n";
//System.out.println("???出:"+tmp);
}
}
catch(Exception e){
System.out.println("獲取應用程序輸出時發生IO錯誤:"+e.getMessage());
}
return str;
}
/**
* 測試程序
* @param args
*/
public static void main(String[] args) {
execOP exec=new execOP();
String appcmd="\\\\IP\\c$\\Program Files\\WIPTracking\\XraySystem.exe";
//String appcmd=args[0];
try{
System.out.println(exec.execExternalApp(appcmd));
}
catch(Exception e){
}
}
}
posted on 2005-10-24 13:38
Java&Inter 阅读(760)
评论(0) 编辑 收藏 所属分类:
Java技术