300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java 中调用window系统中的文件 或者执行命令(shell .CMD .EXE)并获取返回值

java 中调用window系统中的文件 或者执行命令(shell .CMD .EXE)并获取返回值

时间:2018-11-03 14:47:26

相关推荐

java 中调用window系统中的文件 或者执行命令(shell .CMD .EXE)并获取返回值

原文:/ligaoyang/article/details/6755327

测试能拿返回值,但是在getErrorStream里,

import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.nio.charset.Charset;

public class Test {

/**

* @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 = "java -version";

try {

System.out.println(execCMD(name1, 3));

System.out.println(execCMD(name2, 2));

System.out.println(execCMD(name3, 1));

} 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);//"cmd.exe /C R");// CMD Rserve");// --RS-enable-remote");try {pro.waitFor();} catch (InterruptedException e) {e.printStackTrace();}br = new BufferedReader(new InputStreamReader(pro.getInputStream(), Charset.forName("GBK")));String line = null;StringBuffer text = new StringBuffer("获得的信息是: \n");while ((line = br.readLine()) != null) {text.append(line); System.out.println(line);}BufferedReader ber = null;ber = new BufferedReader(new InputStreamReader(pro.getErrorStream(), Charset.forName("GBK")));String linee = null;StringBuffer texte = new StringBuffer("获得错误的信息是: \n");while ((linee = ber.readLine()) != null) {texte.append(linee);}

return text.length() > 9 ? text.toString() : text1.toString();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。