我正在尝试在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");
答案 0 :(得分:3)
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();