繁体   English   中英

Java Runtime.exec()从参数中删除换行符

[英]Java Runtime.exec() removes newlines from arguments

我有一个Java类,它使用Runtime.exec()来执行cscript进程,其中包含一个从数据库中检索的多个参数的String 其中一个参数包括需要保留的换行符,但Runtime.exec()会删除换行符。 使用ProcessBuilder时问题不存在,但我不必担心解析我的参数列表。

有没有办法在调用exec()时保留换行符?

如果有人想看到它,这里是exec()调用的简化示例:

Process proc = Runtime.getRuntime().exec("cscript test.vbs \"line1\r\nline2\"");

我的脚本将“line1 line2”作为一个参数,换行符替换为空格。

您的问题中的信息很少,但我猜测您的问题如下。

请注意, 带有String命令参数Runtime.exec(...)形式最终将使用StringTokenizer生成实际的命令令牌,这可能会解释意外删除换行符。 尝试使用带有String数组命令参数Runtime.exec(...)形式,以便不会解析字符串命令参数。

当然,这样做可能需要您自己解析参数,但这可能是确保程序达到预期效果的唯一方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM