0

我本来会直截了当地这么想的,但事实并非如此。

目标:我正在ArgCHeck.sh通过我的 .jsp 文件运行一个 shell 脚本。这工作正常,我可以在我的系统控制台中看到输出。

但是,当我尝试通过 HTML 将该行输出到浏览器时,它似乎不起作用。

我尝试将字符串设置为Static final String line = "test";,这可以输出单词 test,但不是我想要的来自其他字符串行的值。

它可能是我错过的东西,但任何帮助都是值得的。

<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%!

%>
<%
Runtime r=Runtime.getRuntime();
Process p=null;
String s=null;
String cmd="/tools/scripts/ArgCheck.sh orange";

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();


System.out.println(p.exitValue());
%>
<html>
    <head/>
    <body>
        <%
    // This scriptlet generates HTML output
    out.println( String.valueOf( line ));
%>
    </body>
</html>

- - - - - - - - - - - - - - 编辑 - - - - - - - - - - - -------------------------------------------

这就是你剪切和粘贴时得到的结果。我阅读了代码,这很明显。是时候休息一下了。

<%@page import="java.io.*"%>
<%@page import="java.util.*"%>

<html>
<head>
<head/>

<body>


<% 
Runtime r=Runtime.getRuntime();
Process p=null;
String s=null;
String cmd="/tools/scripts/ArgCheck.sh";

p=r.exec(cmd);
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line = null;
while((line = br.readLine()) != null){
out.println(line);
}
p.waitFor();
%>

</body>
</html>
4

1 回答 1

0

给你..只需更改文件路径。

<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%!
private String runScriptFile(){
    String strRetVal = "";
    Runtime r=Runtime.getRuntime();
    Process p=null;
    String s=null;
    String cmd="D:\\test.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){
            strRetVal += line + "<br>";
            System.out.println(line);
        }
        p.waitFor();
    }catch(Exception e){
        e.printStackTrace();
    }
    return strRetVal;
}
%>
<%
String line = runScriptFile();
%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Batch File Test</title>
    <head/>
    <body>
<%
    // This scriptlet generates HTML output
    out.println( String.valueOf( line ));
%>
    </body>
</html>
于 2012-10-10T07:19:10.857 回答