gpt4 book ai didi

java - 从 java/Child Shell 执行挂载命令无法访问挂载的目录

转载 作者:行者123 更新时间:2023-12-01 13:06:40 24 4
gpt4 key购买 nike

我有一个需要从 java 代码执行的 python 脚本。我使用以下命令:

 ScriptResult result = executor.executeCommand(Script,
params.getParams(), false);

但是 executor.executeCommand() fork 了一个新的 shell 。我之前运行了一个 mount 命令,并且/mnt/folder1 的内容可以从父 shell 访问,但不能从新 fork 的子 shell 访问。

我尝试在 executor.executeCommand() 步骤之前使用以下命令执行挂载命令:

     String cmd = new String("/bin/mount ip:/folder1 /mnt/folder1");
Process p = new ProcessBuilder(cmd).start();

还有

    String cmd = new String("mount"); String[] arg = new
String[]{" ip:/folder1 ,"/mnt/folder1"}; Process pr =
Runtime.getRuntime().exec(cmd);

这两个都会给出以下错误:

    java.io.IOException: Cannot run program "mount ip:/folder1 /mnt/folder1":
error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at Caused by: java.io.IOException: error=2, No such file or directory

我制作了一个 myscript.sh 并将 mount 命令和 python script 命令复制到 myscript 中。我通过java代码调用myscript并且成功了。但我应该从 java 代码调用 mount 命令,而不是通过单独的脚本。有什么办法我错过了。提前致谢。

最佳答案

尝试改变

 String cmd = new String("/bin/mount ip:/folder1 /mnt/folder1");

Process p = new ProcessBuilder(cmd).start();

String[] cmd = new String[]{"/bin/mount", "ip:/folder1", "/mnt/folder1"};

Process p = new ProcessBuilder(cmd).start();

关于java - 从 java/Child Shell 执行挂载命令无法访问挂载的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216411/

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