次のコードは.javaファイルで正常に実行されますが、.jspファイルで実行しようとすると実行されません。jsp経由でネットビューコマンドを実行
IPアドレスとドメインを削除すると正常に実行されます。
jspページには、<%@ page import = "java.io. *"%>が含まれています。どんな助けもありがとう。ありがとうございました。
String[] commands = new String[]{"cmd", "/c", "net", "view", "IPADDRESSHERE", "/domain:DOMAIN"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(commands);
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String strLine;
while ((strLine = input.readLine()) != null) {
System.out.println(strLine);
}
TestServlet.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("net view SHARENAMEGOESHERE");
pr.wait();
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
BufferedWriter output = new BufferedWriter(new FileWriter("networklist.properties", false));
String [] nextLine;
String strLine;
String copied;
String newString = null;
StringBuilder toFile = new StringBuilder();
while ((strLine = input.readLine()) != null) {
out.println(strLine+"<br>");
if(strLine.indexOf("Print") != -1){
copied = strLine;
copied = copied.replaceAll("\\s+", "");
nextLine = copied.split("Print");
if(nextLine.length == 2){
newString = nextLine[1] + "=" + nextLine[0]+"\n";
toFile.append(newString);
out.println(newString+"<br>");
}
}
}
if(null != newString){
output.write(toFile.toString());
}
input.close();
output.close();
} catch (Exception e){
e.printStackTrace();
out.println(e.getMessage());
} finally {
out.close();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
クライアントマシン(WebブラウザとJSPで生成されたHTMLコードが実行される)ではなく、サーバーマシン(WebサーバーとJava/JSPコードが実行される)でこのコードがコマンドを実行することはよく知っていますか? – BalusC