如何在 Linux 中从我的 Java 代码运行放置在桌面上的 C++ 可执行文件“exerun”。我发现了很多关于运行时的信息,但我无法清楚地抓住这个概念......请帮我清除这个......
问问题
1947 次
3 回答
4
一个应该使用ProcessBuilder
而不是Runtime
Process p = new ProcessBuilder("myCommand", "myArg").start();
您可以从p
. 然后,您可以重定向进程的输出并通过 java 为其提供输入。
你也应该看看这个问题。它向您展示了如何设置工作目录。
于 2013-09-05T00:01:38.217 回答
3
您可以尝试exec()
以下示例:
Runtime.getRuntime().exec("c:\\path_to_the_file\\myfile.exe", null, new File("c:\\path_of_the_folder");
在这里,您可以找到 3 个参数:
- .exe 的位置
- 第二个参数可以
null
- *.exe 文件所在目录的路径。
于 2013-09-04T23:56:28.630 回答
3
基本上,您需要使用Runtime.getRuntime().exec(command)
,command
您要执行的命令在哪里。这将返回一个Process
对象(比如myProcess
)。
如果您的程序产生输出,您将需要不断读取可以使用myProcess.getInputStream()
和检索的流myProcess.getErrorStream()
。它们分别对应于进程的stdout
和stderr
。
如果myProcess
产生输出并且您没有从 Java 程序中读取它,myProcess
则将在一段时间后锁定。
于 2013-09-05T00:03:32.583 回答