【发布时间】:2012-09-12 16:56:03
【问题描述】:
我有一个 Java 类,它使用Runtime.exec() 执行一个cscript 进程,其中一个String 从数据库中检索到几个参数。这些参数之一包括需要保留的换行符,但Runtime.exec() 删除了换行符。使用ProcessBuilder 时问题不存在,但我宁愿不必担心解析我的参数列表。
有没有办法在调用exec() 时保留换行符?
如果有人想看,这里有一个调用exec()的简化示例:
Process proc = Runtime.getRuntime().exec("cscript test.vbs \"line1\r\nline2\"");
我的脚本将“line1 line2”作为一个参数,换行符被空格替换。
【问题讨论】:
-
你能贴出相关的代码部分吗? “Runtime.exec”可能具有平台相关行为...
-
在 Windows 中,我真的无法想象换行符在程序命令行中有效的情况,因此如果能够传递一个破坏程序,我不会感到惊讶。您将如何从命令行或批处理文件中正确传递该参数?
-
根据提供的信息很少,很难猜出哪里出了问题。请告诉更多。
标签: java process runtime.exec processbuilder