
spolti
(usa Fedora)
Enviado em 13/08/2013 - 14:08h
maryjanexique escreveu:
Fiz os testes no terminal vai certinho (inclusive com os usuários),
mas, no netbeans rodando tomcat com JSP não funciona!!!
????????????????
filippec escreveu:
permissão acho que não, mais verifique se o usuário que você executa no prompt é o mesmo usuário que executa o tomcat.
Para saber se funciona, drope para o prompt do mesmo usuário que executa o tomcat.
Ex: su - tomcat (executado como root)
se o usuário for o mesmo,
tente usar o caminho absoluto, ex: /usr/java/default/bin/java -version.
Para saber onde está o binário do comando use o "whereis"
Ex: whereis java
Algum tempo fiz um método parecido, porém não executei dentro do JSP.
Você pode fazer assim:
Faz o JSP que que chama a função que executa o comando, Assim:
JSP:
<%
ExecuteCommand ec = new ExecuteCommand();
BufferedReader Resultset = ec.doWork(parm);
if (null != Resultset) {
String line;
out.println("<h4>" + parm + " output</h4>");
try {
while ((line = Resultset.readLine()) != null) {
out.println(line + "</br>");
}
} catch (IOException e) {
e.printStackTrace();
}
out.println("<p>Finished</p>");
} else {
out.print("<p>Command " + parm + " failed!!!</p>");
}
out.println("</body></html>");
out.close();
}
%>
public class ExecuteCommand {
public BufferedReader doWork(String command) {
BufferedReader Resultset = null;
if (command == null) {
return Resultset;
}
Process Findspace = null;
try {
Findspace = Runtime.getRuntime().exec(command);
} catch (IOException e) {
e.printStackTrace();
return Resultset;
}
Resultset = new BufferedReader(new InputStreamReader(Findspace.getInputStream()));
return Resultset;
}
}
Este exemplo fiz utilizando servlet, mas com jsp não é muito diferente, só é preciso adaptar.