从Java代码调用C可执行文件后没有得到任何输出

时间:2013-05-18 06:37:16

标签: java c process runtime.exec

我正在尝试从已经编译和执行的Java代码执行C代码,但是,我没有从可执行文件中获得任何输出。任何人都可以帮我完成这项任务吗?

代码如下。

public class Test {
    public static void main(String args[]) {
        try {
            Process processCompile = Runtime.getRuntime().exec("e:/Sample.exe");
        } catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

2 个答案:

答案 0 :(得分:5)

试试这个:

BufferedReader stdInput = new BufferedReader(new 
     InputStreamReader(processCompile .getInputStream()));


// read the output from the command
System.out.println("EXE OUTPUT");
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}

答案 1 :(得分:0)

只有运行具有管理员权限的java程序时,此方法才有效。

如果您有权限,那么您可以尝试在“cmd”shell下运行您的进程(由您的java进程分叉)。一个实现这样做是在这里完成的“LinuxInteractor”(但在linux中)。只需稍微更改即可移植到Windows版本。

Finding hard and soft open file limits from within jvm in linux (ulimit -n and ulimit -Hn)