java - java调用shell脚本的问题

标签 java shell

我正在java中调用一个shell脚本,它接受2个参数。

private void invokeShellScript(String script,String subject,String message)
    {
        String shellCmd = null;
        try
        {
            shellCmd = script.trim() + " " + subject + " " + message;

            Process process=Runtime.getRuntime().exec(shellCmd);
            process.waitFor();
        }
        catch(Exception e)
        {
             LOGGER.error("Exception occured while invoking the message report script");
        }
    }

当我将主题和消息传递给 shell 脚本时,它没有正确解析内容。

这里说如果主题=“你好,这是一封测试邮件”。 然后 shell 脚本认为主题是 Hello,消息是 This

这里我猜测字符串中的空格导致了问题。

我该如何解决这个问题。

最佳答案

在将字符串传递给 shell 时尝试引用它们。

所以要么

"\"Hello This is a test mail\""

"'Hello This is a test mail'"

(在java中)

关于java - java调用shell脚本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16651290/

相关文章:

java - 异常应该放在单独的包中吗?

linux - 获取 shell 脚本的 pid 并将其保存到一个锁定文件中

java - 当使用除 String 之外的其他内容时,使用 Spring MVC、Jackson 和 REST 406。想要复杂类型

java - 如何以编程方式获取设备 DPI?

java - 进程内 ActiveMQ 生产者/消费者示例?

java - 在java中登录多线程应用程序

linux - 将文件上传到 sftp 的 bash 脚本

bash - 如何使用 sed 替换特定单词后的文本?

python - 使 Python 脚本在系统范围内可访问

linux - 使用 if 和 else 检查目录名称并在 linux bash 脚本中分配变量