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