Java 用作命令行参数时保留字符串中的空白

Java 用作命令行参数时保留字符串中的空白,java,whitespace,args,Java,Whitespace,Args,我正在尝试用Java编写一个GUI,它可以将用户输入发送到其他文件进行处理,这是使用命令行参数完成的。除非用户试图发送带有空格的字符串,否则这可以正常工作,因为它们被解释为单独的参数。以下是一个例子: public String exampleMethod(String userInput, String fileName) { try { String output = ""; Process p = Runtime.getRuntime()

我正在尝试用Java编写一个GUI,它可以将用户输入发送到其他文件进行处理,这是使用命令行参数完成的。除非用户试图发送带有空格的字符串,否则这可以正常工作,因为它们被解释为单独的参数。以下是一个例子:

public String exampleMethod(String userInput, String fileName)
{

    try 
    {
        String output = "";
        Process p = Runtime.getRuntime().exec("./directory/" + fileName + " " + userInput);
        BufferedReader in = new BufferedReader(
                            new InputStreamReader(p.getInputStream()));
        String line = null;
        while ((line = in.readLine()) != null) 
        {
            output = output + line;
        }
        return output;
    }
    catch (IOException e) 
    {
        e.printStackTrace();
        return "ERROR: I/O Exception";
    }

任何帮助都将不胜感激

空格用于分隔参数。用户应该使用引号(“)。

您可以使用Java的内置代码来完成此操作。类似于:

Process p = new ProcessBuilder("./directory/" + fileName, userInput).start();

或者,要获得更健壮的功能,请查看框架,尽管所需的代码有点冗长。

我真的觉得自己像个白痴,花了这么长时间试图解决我从未遇到的问题,谢谢!