gpt4 book ai didi

java没有执行系统命令

转载 作者:行者123 更新时间:2023-11-30 07:36:29 27 4
gpt4 key购买 nike

在下面的程序中,我将名称命名为“don”,因此该命令将搜索 activedirectory所有名字都以 don 开头(比如 donald 等)。但是 line2 变量在从 reader 对象赋值后变为 null,并且它永远不会进入循环。我究竟做错了什么?仅供引用:当我在命令行上输入时,该命令有效。

try {
Process p = Runtime.getRuntime().exec(
"dsquery user -name " + name + "* -limit 200|dsget user -samid -display");
p.waitFor();
BufferedReader reader = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line2 = reader.readLine();
HashMap<String,String> hmap = new HashMap<String,String>();
while (line2 != null) {
line2 = line2.trim();
if (line2.startsWith("dsget")||line2.startsWith("samid")) {
continue;
}
String[] arr = line2.split(" ",1);
hmap.put(arr[0].toLowerCase(),arr[1].toLowerCase());
line2 = reader.readLine();
}
reader.close();
line2 = reader.readLine();
}

最佳答案

如果我没记错的话,管道(或重定向)需要使用 cmd.exe 启动程序。像这样的东西:

Process p = Runtime.getRuntime().exec("cmd /c dsquery user -name " + name + "* -limit 200|dsget user -samid -display");

关于java没有执行系统命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547166/

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