IOException while executing the unix shell command by java, Runtime.getRuntime().exec(), java.io.IOException, Cannot run program, No such file or directory.
JSP file where issue occurred:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.BufferedReader,java.io.IOException,java.*,java.lang.Runtime,java.io.InputStreamReader;" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
StringBuffer objOutPut = new StringBuffer();
Process objProcess;
try {
String[] command = {"ls -tlr"};
objProcess = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(
objProcess.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println((line + "\n"));
objOutPut.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
%>
<textarea rows="20" cols="150">
<%=objOutPut %>
</textarea>
</body>
</html>
Issue:
java.io.IOException: Cannot run program "ls -tlr": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:494)
at java.lang.Runtime.exec(Runtime.java:612)
at java.lang.Runtime.exec(Runtime.java:485)
at org.apache.jsp.jsp.cmd_005foutput_jsp._jspService(cmd_005foutput_jsp.java:75)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
Solutions:
Put the command in .sh file and call that file with actual path.
e.g
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.BufferedReader,java.io.IOException,java.*,java.lang.Runtime,java.io.InputStreamReader;" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
StringBuffer objOutPut = new StringBuffer();
Process objProcess;
try {
String[] command = {"/home/catlog.sh"};
//String[] command = {"ls -tlr"};
objProcess = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(
objProcess.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println((line + "\n"));
objOutPut.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
%>
<textarea rows="20" cols="150">
<%=objOutPut %>
</textarea>
</body>
</html>
Done for the day!!!
I read like this type of article only. You mentioned more important points in this article. Thankyou for interesting article.
ReplyDeletecore java training in chennai
C Language Training in Chennai
c++ class
c c++ courses in chennai
C Language Training
javascript course in chennai
Appium Training in Chennai
JMeter Training in Chennai
slot siteleri
ReplyDeletekralbet
betpark
tipobet
mobil ödeme bahis
betmatik
kibris bahis siteleri
poker siteleri
bonus veren siteler
HİİR7