将参数从Java程序传递到shell脚本

时间:2012-06-18 17:51:11

标签: java jsp shell servlets

我正在开发一个Web应用程序,其中我使用JSP作为我的前端和shell脚本作为我的后端。因此,我将通过Java程序(业务层)将参数从输入JSP传递到shell脚本。我想知道如何将参数从Java传递到shell脚本并执行相同的操作。谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用ProcessBuilder将参数传递给shell脚本。

ProcessBuilder pb = new ProcessBuilder("shellscript", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory("myDir");
Process p = pb.start();

答案 1 :(得分:1)

我已经找到了答案,我认为这可能对人们有所帮助。 请参阅代码

public static BufferedReader process() throws IOException  
{
    ProcessBuilder pb = new ProcessBuilder("/home/XXXX/Desktop/request.sh","Apple");
    String line; 
    Process process=pb.start(); 
    java.io.InputStream is = process.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);

    while ((line = br.readLine()) != null)
    {
        System.out.println(line);
    }
    return br;

}

这里“Apple”是shell脚本的输入参数,它将存储在$ 1(环境变量)中,这可以从shell脚本访问,当需要从shell脚本发送到Java时,从shell回显脚本并从Java中的process.inputStream()获取..