【发布时间】:2017-09-16 16:33:16
【问题描述】:
请任何人帮助我通过 java 进程或进程构建器运行以下命令。
Process pr = Runtime.getRuntime().exec("libreoffice --headless ---convert-to csv:\"Text - txt - csv (StarCalc)\":\"09,76,0,1,,0\" --outdir " + f1.getParent() + " " + fullFileName);
这给了我“未知命令-”的输出
我使用了流程构建器:
ArrayList<String> cmd = new ArrayList<String>();
cmd.add("libreoffice");
cmd.add("--headless");
cmd.add("--convert-to");
cmd.add("csv:\"Text - txt - csv (StarCalc)\":09,76,0,1,,0");
cmd.add("--outdir");
cmd.add(path);
cmd.add(fullFileName);
ProcessBuilder ps = new ProcessBuilder(cmd);
ps.redirectErrorStream(true);
Process pr = ps.start();
它给我错误“未知参数 csv:\"Text - txt - csv (StarCalc)\":09,76,0,1,,0"
【问题讨论】:
-
您提到了“---convert-to csv”,但在字符串中您添加了“--convert-to csv”
-
还尝试将 csv 添加到“---convert-to”部分。 "---convert-to csv:\"文本 - txt - csv (StarCalc)\":09,76,0,1,,0"
-
09 之前你还缺少\"。还缺少需要动态创建命令的空格
-
谢谢大家,尝试了所有的可能性和建议,\"Text - txt - csv (StarCalc)\" 是真正的罪魁祸首,如果可能,请任何人提供工作代码
标签: java csv command-line process libreoffice