我知道我们可以在 java 程序中运行 linux 终端命令,如下代码显示主目录的“ls”命令。
String[] cmd1 = {
"/bin/sh",
"-c",
"cd ../.. && ls"};
Process child1 = Runtime.getRuntime().exec(cmd1);
child1.waitFor();
final BufferedReader is = new BufferedReader(new InputStreamReader(child1.getInputStream()));
String line;
while ((line = is.readLine()) != null) {
System.out.println("output is: "+line);
}
但我不知道“/bin/sh”和“-c”是什么意思?我在网上搜索了它,有人使用了“bash”或其他。如果我只将命令作为“cd ../.. && ls”运行,我将得到相同的结果。
那么如果终端中有一个命令为“txl -o output inputFile”,其中“txl”是安装的工具,如何在java中写入?我试过
String[] cmd1 = {
"/bin/sh",
"-c",
"cd ../.. && txl -o output inputFile"};
但无法得到结果。我添加“cd ../..”以首先从工作空间进入主目录,因为 txl 安装在主 bin 目录中。
谁能给我一些建议?
编辑:
我犯了一个愚蠢的拼写错误,这种格式的命令有效!