java 执行cmd、shell 、exe 返回结果

import java.io.BufferedInputStream;
import java.io.IOException;

public class copy {
	////scp -P 3737 -r /usr/local/tomcat7/webapps/ROOT/WEB-INF/page/jsp/ [email protected]:/opt/tomcat_6/webapps/ROOT/WEB-INF/page/
	
	
	/**
	* @param args
	*/
	public static void main(String[] args) {
	   String name1 = "C:/WINDOWS/system32/winmine.exe";
	   String name2 = "C:/test.cmd";//我CMD里面的内容是 netstat -ano 其他的也可以
	   //String name3 = "scp -P 3737 -r /usr/local/tomcat7/webapps/ROOT/WEB-INF/page/jsp/ [email protected]:/opt/tomcat_6/webapps/ROOT/WEB-INF/page/";
	   String name3="1.sh";
	   try {
	  //  System.out.println(execCMD(name1, 3));
	   // System.out.println(execCMD(name2, 2));
	    System.out.println(execCMD(name3, 3));
	   } catch (IOException e) {
	    e.printStackTrace();
	   }
	}
	
	
	
	
	/**
	* 
	* @param path 要执行的文件路径或命令
	* @param type 执行类型 1 shell命令 2 .CMD文件 3 .EXE文件
	* @return 返回的值
	* @throws IOException
	*/
	public static String execCMD(String path, int type) throws IOException {
	   final String COM_TITLE = "CMD /C ";
	   if (type == 1) {
	    path = COM_TITLE + path;
	   }
	  Process pro = Runtime.getRuntime().exec(path);
	   BufferedInputStream br = new BufferedInputStream(pro.getInputStream());
	   BufferedInputStream br1 = new BufferedInputStream(pro.getErrorStream());
	   int ch;
	   StringBuffer text = new StringBuffer("获得的信息是: \n");
	   while ((ch = br.read()) != -1) {
	    text.append((char) ch);
	   }
	   StringBuffer text1 = new StringBuffer("获得的错误信息是: \n");
	   while ((ch = br1.read()) != -1) {
	    text1.append((char) ch);
	   }
	   return text.length() > 9 ? text.toString() : text1.toString();
	}
	

}



你可能感兴趣的:(java 执行cmd、shell 、exe 返回结果)