-1

其实我有两个命令:

  1. 源文件名
  2. 安装 ABCD

在执行第二个命令之前,我需要执行第一个。我绑定使用方法执行这两个命令Runtime.getRuntime().exec(cmd),但是第二个命令失败了,因为它取决于第一个。我尝试了很多组合,但没有成功。有人可以帮我吗?

4

1 回答 1

1

您可能正在执行两个单独的 exec 命令,产生单独的进程,因此您在第一个进程中所做的任何事情对第二个进程都不可见。通过将所有命令放入脚本(bash、ksh 等)并从 Java 程序调用一次来解决此问题。

参数化您的脚本,以便您可以传递参数。

这是编写第一个 shell 脚本的一些帮助


[编辑]正如@RNJ 所述,您可以查看使用ProcessBuilder将环境变量传递给生成的每个进程。如果您可以提前指定要创建的文件的名称,这将很好。示例代码取自上面的 API 链接...

 ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
 Map<String, String> env = pb.environment();
 env.put("VAR1", "myValue");
 env.remove("OTHERVAR");
 env.put("VAR2", env.get("VAR1") + "suffix");
 pb.directory(new File("myDir"));
 Process p = pb.start();
于 2013-04-01T13:34:21.790 回答