0

私はこれを簡単に考えていただろうが、そうではないようだ。

目的:ArgCHeck.sh.jspファイルを介してシェルスクリプトを実行しています。これは正常に機能し、システムコンソールに出力が表示されます。

ただし、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 に答える