0

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

4

2 回答 2

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();
于 2012-06-18T18:08:48.687 回答
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脚本回显并获取来自process.inputStream()Java ..

于 2012-06-20T01:40:26.777 回答