我正在尝试运行我在 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();
这会引发 IOException - bash 找不到“maude”命令。
我在我的 .bashrc 文件中有这个别名:
alias maude='~/lib/maude/maude.linux'
如果我像这样更改代码:
maudecmd[0] = "/u/h/os215/lib/maude/maude.linux";
它工作正常。
我想更改此代码,使其更健壮 - 如果有人可以在命令行上运行 Maude,则 ProcessBuilder 也应该能够使用它,无论用户必须使用何种特定方法将 Maude 链接起来。
这可以实现吗?