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