gpt4 book ai didi

带重定向的 java getRuntime().exec()

转载 作者:行者123 更新时间:2023-12-01 22:25:34 24 4
gpt4 key购买 nike

我试图在 java 中执行终端命令,但得到错误的结果(即使该命令正在执行)。当我将相同的命令粘贴到终端时,它会产生正确的输出。我猜测问题是由于重定向字符('<','>')而发生的,但我还没有找到解决方案。我正在使用 eclipse 和 osx。以下是命令,非常感谢。

Process p = Runtime.getRuntime().exec("java -jar filePath/rdfslice_1.6.jar "
+
"-source filePath/myData.nt -patterns {?s1 <http://www.europeana.eu/schemas/edm/isShownAt> ?o1.} "
+
"-out filePath/output.out -order S");

最佳答案

Runtime.exec 已过时,实际上不应该再用于任何用途。它的替代品是 ProcessBuilder 。使用时不必引用或转义任何内容:

ProcessBuilder builder = new ProcessBuilder(
"java",
"-jar",
"filePath/rdfslice_1.6.jar",
"-source",
"filePath/myData.nt",
"-patterns",
"{?s1 <http://www.europeana.eu/schemas/edm/isShownAt> ?o1.}",
"-out",
"filePath/output.out",
"-order",
"S");

Process p = builder.inheritIO().start();

关于带重定向的 java getRuntime().exec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842497/

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