gpt4 book ai didi

Java:无法使用参数执行外部 exe

转载 作者:行者123 更新时间:2023-12-03 18:48:01 25 4
gpt4 key购买 nike

我正在尝试运行带参数的外部程序。该程序可以采用不同类型的参数,例如 avl tip.avlavl < test.ops

我可以得到 avl tip.avl贯穿

try {
String[] list = {"avl", "test_0.avl"};
ProcessBuilder pb = new ProcessBuilder(list);
pb.command(list);
final Process p = pb.start();
BufferedReader br = new BufferedReader( new InputStreamReader( p.getInputStream() ) );
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception ex) {
System.out.println(ex);
}

但是当我尝试

String[] list = {"avl", "<", "test_0.ops"};
ProcessBuilder pb = new ProcessBuilder(list);
pb.command(list);
final Process p = pb.start();

"<"不会作为参数发送,而是在程序运行后作为输入发送。 avl < test.ops当我从命令行尝试它时工作正常,但无法让它通过 ProcessBuilder 工作.

我认为avl tip.avl工作是因为运行 avl tip.avl与运行 avl 相同然后输入 tip.avl .这是什么ProcessBuilder似乎在做实际...

我假设所有的论点都会同时传递。执行命令提示符输入的正确方法是什么 avl < test.ops + 输入

最佳答案

您不能像 Java 那样重定向输入。使用 <是一个特殊的shell管道重定向命令。

您要么必须使用 processBuilder.getOutputStream()将数据写入进程,否则你可以使用 redirectInput.

关于Java:无法使用参数执行外部 exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49699647/

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