0

如何在 Linux 中从我的 Java 代码运行放置在桌面上的 C++ 可执行文件“exerun”。我发现了很多关于运行时的信息,但我无法清楚地抓住这个概念......请帮我清除这个......

4

3 回答 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()。它们分别对应于进程的stdoutstderr

如果myProcess产生输出并且您没有从 Java 程序中读取它,myProcess则将在一段时间后锁定。

于 2013-09-05T00:03:32.583 回答