gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:39 25 4
gpt4 key购买 nike

我有一个 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(...) with a String command argument 的形式最终会使用 StringTokenizer生成实际的命令标记,这可能解释了换行符的意外删除。尝试使用 Runtime.exec(...) with a String array command argument 的形式这样就不会对字符串命令参数进行解析。

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

关于Java Runtime.exec() 从参数中删除换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393010/

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