其实我有两个命令:
- 源文件名
- 安装 ABCD
在执行第二个命令之前,我需要执行第一个。我绑定使用方法执行这两个命令Runtime.getRuntime().exec(cmd)
,但是第二个命令失败了,因为它取决于第一个。我尝试了很多组合,但没有成功。有人可以帮我吗?
您可能正在执行两个单独的 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();