Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ProcessBuilder:未找到命令_Java_Linux_Processbuilder - Fatal编程技术网

Java ProcessBuilder:未找到命令

Java ProcessBuilder:未找到命令,java,linux,processbuilder,Java,Linux,Processbuilder,我正在尝试运行我在linux上找到的一些Java代码 maudecmd = new String[files.length+5]; maudecmd[0] = "maude"; maudecmd[1] = "-no-banner"; maudecmd[2] = "-no-ansi-color"; maudecmd[3] = "-no-mixfix"; maudecmd[4] = "-no-wrap"; for(int i = 0; i &l

我正在尝试运行我在linux上找到的一些Java代码

    maudecmd = new String[files.length+5];
    maudecmd[0] = "maude";
    maudecmd[1] = "-no-banner";
    maudecmd[2] = "-no-ansi-color";
    maudecmd[3] = "-no-mixfix";
    maudecmd[4] = "-no-wrap";
    for(int i = 0; i < files.length; ++i) {
        maudecmd[5+i] = files[i];
    }

    ProcessBuilder pb = new ProcessBuilder(maudecmd);
    if(dir != null)
        pb.directory(dir);
    pb.redirectErrorStream(true);
    maude = pb.start();
如果我这样更改代码:

maudecmd[0] = "/u/h/os215/lib/maude/maude.linux";
它很好用

我想更改此代码,使其更加健壮-如果有人可以在命令行上运行Maude,ProcessBuilder也应该能够使用它,无论用户使用何种特定方法链接Maude


这可以实现吗?

。bashrc
别名只影响BASH shell。您可以导出一个环境变量,但我不知道Java的ProcessBuilder是否也会接受它

话虽如此,我不明白为什么这不起作用:

maudecmd[0]=“/bin/bash-maude”

.bashrc
别名只影响BASH shell。您可以导出一个环境变量,但我不知道Java的ProcessBuilder是否也会接受它

话虽如此,我不明白为什么这不起作用:

maudecmd[0]=“/bin/bash-maude”

ProcessBuilder只能启动真正的进程。这里的
maude
是bash别名,因此仅适用于bash


您可以使用环境变量来指向可执行文件夹,而不是定义别名。或者只需将可执行路径作为应用程序的参数传递。

ProcessBuilder只能启动实际进程。这里的
maude
是bash别名,因此仅适用于bash

您可以使用环境变量来指向可执行文件夹,而不是定义别名。或者简单地将可执行路径作为应用程序的参数传递

maudecmd[0] = "/u/h/os215/lib/maude/maude.linux";