gpt4 book ai didi

java - ProcessBuilder 中的撇号

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

我需要使用 ProcessBuilder 在 Linux 中构建以下命令:

sudo packit -t UDP -S 1000 -D 1200 -s 127.0.0.1 -d 192.168.1.1 -c 5 -n 12345 -p '0x 80 64 45 78 00 00 27'

我尝试使用以下代码:

commands.add("sudo"); commands.add("packit");
commands.add("-t"); commands.add("UDP");
commands.add("-S"); commands.add("1000");
commands.add("-D"); commands.add("1200");
commands.add("-s"); commands.add("127.0.0.1");
commands.add("-d"); commands.add("192.168.1.1");
commands.add("-c");
String a = "5"; commands.add(a);
String b = "-n 12345"; commands.add(b);
String c = "-p '0x 80 64 45 78 00 00 27'"; commands.add(c);
ProcessBuilder pb = new ProcessBuilder(commands);
Process process = pb.start();

没有语法错误,但结果与终端结果不同。当我删除 String c = "-p '0x 80 64 45 78 00 00 27'"; Commands.add(c);。我得到与终端结果相同的结果。我认为问题是撇号('),请帮我解决这个问题。

最佳答案

我认为这些都是错误的:

String b = "-n 12345"; commands.add(b);
String c = "-p '0x 80 64 45 78 00 00 27'"; commands.add(c);

选项(-n-p)与其参数是分开的:

commands.add("-n"); commands.add("12345");
commands.add("-p"); commands.add("0x 80 64 45 78 00 00 27");

另请注意,此处缺少额外的引号。这些仅是 shell 所需要的。

关于java - ProcessBuilder 中的撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14908437/

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