0

我正在尝试从已经编译和执行的 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();
        }
    }
}
4

2 回答 2

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);
}
于 2013-05-18T06:40:56.303 回答
0

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

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

在 linux 中从 jvm 中查找硬和软打开文件限制(ulimit -n 和 ulimit -Hn)

于 2013-05-18T06:39:12.420 回答