我想执行C程序使用java的方法runtime.getRuntime()。exec();
但如果我执行C程序使用getRuntime(),有时C程序就死了....
但如果我在终端执行C程序,永远不会死C程序......
在某些时候,有两种不同的方式吗?
PS。 processBuilder方法也一样
答案 0 :(得分:2)
当你从shell执行一个C程序时,它会继承所有类型的环境变量,以及由shell设置的工作目录。
使用getRuntime()。exec()运行程序时,不要调用shell,而只调用程序。如果您的程序需要设置特定的环境变量,或者必须在特定目录中运行,则必须在调用中提供它们。