当我点击按钮时,我想调用Unix服务器上的ksh脚本。
我在unix服务器上做这一切,我有所有ksh和jsp脚本。 实际上我想做的是我有一个带有一个文本框的JSP页面(进入主机)和一个按钮。
一旦客户进入主机并点击按钮,我想调用位于同一个unix位置的ksh脚本,并将此主机名作为参数。
请帮我解决这个问题。 如果我能获得任何示例代码,那将是很棒的。
答案 0 :(得分:0)
您需要在后端创建一个servlet,并对Servlet使用AJAX类型的资源请求。进入servlet之后,您将使用运行时执行脚本:
Runtime.getRuntime().exec("your script");
或使用Process Builder看起来像:
ProcessBuilder pb = new ProcessBuilder("Script name", "arg1", "arg2");
Map<String,String> args = pb.environment();
args.put("arg1", "Val1");
....etc.....
Process p = pb.start();
答案 1 :(得分:0)
这是有效的代码:
但我在该目录c:\ named tang.bat.
下有一个批处理文件
尝试在那里放一些文件,它将运行
<%@page import="java.io.*"%>
<%
Runtime r=Runtime.getRuntime();
Process p=null;
String cmd="c:/Tango.bat";
try{
p=r.exec(cmd);
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line = br.readLine()) != null){
%>
<%= line %>
<%
}
p.waitFor();
}
catch(Exception e){
out.println(e);
}
System.out.println(p.exitValue());
%>
否则,无论你想要什么,都试试这个
<%@page import="java.io.*"%>
<%
Runtime r=Runtime.getRuntime();
Process p=null;
String cmd="/home/shdir/runmms.sh";
try{
p=r.exec(cmd);
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line = br.readLine()) != null){
System.out.println(line);
}
p.waitFor();
}
catch(Exception e){
out.println(e);
}
System.out.println(p.exitValue());
%>