gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 16:09:53 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/55359641/

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