java 调cmd、shell 、exe

来源:互联网 发布:怎么连接网络 编辑:程序博客网 时间:2024/04/27 15:58
import java.io.BufferedInputStream;
import java.io.IOException;


public class copy {
    ////scp -P 3737 -r /usr/local/tomcat7/webapps/ROOT/WEB-INF/page/jsp/ vlionosuser@192.168.8.22:/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/ vlionosuser@192.168.8.22:/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();
    }




}
0 0
原创粉丝点击