gpt4 book ai didi

java - 如何从Java调用linux命令 "source FILE_NAME"?

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:20 25 4
gpt4 key购买 nike

实际上我有两个命令:

  1. 来源FILE_NAME
  2. 安装ABCD

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

最佳答案

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

对脚本进行参数化,以便可以传递参数。

这里有一些关于 writing your first shell script 的帮助

<小时/>

[编辑] 正如 @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();

关于java - 如何从Java调用linux命令 "source FILE_NAME"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15744218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com