关于JAVA调用cmd命令,为什么不能返回东西

现在有一个C写的.exe文件,放在C盘的某个目录下之后,我在cmd窗口运行lrc -h 127.0.0.1 -p 6301 -m "X,hello!"就能正常运行并返回我想要的东西,但是我在网上找的java执行就不对。求大神们帮忙啊!!!!!!!!!打印台不能输出任何返回值,运行javac或者java -version也是不报错但是没打印东西。

 public class ExeCommand {

    public String exec(List list) {

        Runtime rn = Runtime.getRuntime();
        Process p = null;
        try {
//          String[] cmd= new String[] {"lrc", "-h","127.0.0.1","-p","6301","-m","X,hello!"};
//          String cmd="lrc"+" "+"-h"+" "+"127.0.0.1"+" "+"-p"+" "+"6301"+" "+"-m"+" "+"\"X,hello!\"";
//          System.out.println(cmd);
//          p = rn.exec(cmd);
            p=rn.exec("javac");

            BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
            String res;
            while((res = br.readLine())!= null){
                System.out.println(1);
                System.out.println(res);
            }

我也碰到了这个问题 请问有解决方案吗? dos下执行命令没问题,java中就得不到想要的结果。

BufferedReader br = null;
try {
Process p = Runtime.getRuntime().exec("net user");
br = new BufferedReader(new InputStreamReader(p.getInputStream(),"gbk"));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

            ----命令有问题,换个就ok了