我正在尝试用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";
}
非常感谢任何帮助
答案 0 :(得分:1)
空格用于分隔参数。用户应使用引号(")。
答案 1 :(得分:0)
您可以使用Java的内置ProcessBuilder来执行此操作。类似的东西:
Process p = new ProcessBuilder("./directory/" + fileName, userInput).start();
或者,对于更健壮的东西,请查看Apache's Commons Exec框架,尽管必要的代码有点冗长。