【问题标题】:Java - executing command in UNIX environmentJava - 在 UNIX 环境中执行命令
【发布时间】:2014-01-10 16:54:34
【问题描述】:

当我尝试在 UNIX 环境中运行命令时使用

Runtime.getRuntime().exec("/bin/ksh -c \"ls -al\"")

这就像标志被丢弃一样工作,即好像命令行将其解释为“直到空间计数的第一个字符串”。但是,运行这个

Runtime.getRuntime().exec(new String[]{"/bin/ksh", "-c",  "ls -al"});

按预期工作...为什么??

【问题讨论】:

    标签: java unix process runtime exec


    【解决方案1】:

    双引号字符串是 shell 功能,Runtime.exec() 不会调用 shell 来解析命令。

    【讨论】:

    • 啊..如果我从 shell 手动运行此命令,它工作正常,但由于 Runtime 不是 shell,它不会以相同的方式解析命令?
    • 没错,它不处理双引号字符串,这就是数组参数的重点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多