即时尝试发送一封电子邮件与Java的Linux命令,我承认我不太了解Linux,但我认为iv'e尝试一切,我真的非常困惑,如果有人能提供一些线索为从java运行linux命令,错误500,无法运行程序没有这样的文件或目录
我的应用程序导出到一个WAR文件,并将其上传到Linux服务器将是巨大的(CentOS的)
所以这里就是我我正在做:我用浏览器触发servlet的代码
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String cmd = "mail -s \"Test Email\" [email protected] < /usr/share/apache-tomcat-7.0.42/webapps/slots_dashboard/alert_mail.txt";
//String cmd = "whoami"; //returns tomcat
ProcessBuilder pb = new ProcessBuilder(cmd);
Process proc = pb.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
String s = null;
while ((s = stdInput.readLine()) != null) {
resp.getWriter().println(s);
}
while ((s = stdError.readLine()) != null) {
resp.getWriter().println(s);
}
}
我得到的错误是: HTTP状态500 - 无法运行程序“mail -s”测试电子邮件“[email protected] < /usr/share/apache-tomcat-7.0.42/webapps/slots_dashboard/alert_mail.txt” :error = 2,没有这样的文件或目录
如果我将命令更改为whoami我在响应中获取tomcat,我甚至去了服务器计算机,并尝试从那里的命令,没有问题。伙计们,请帮助:(
嘿感谢您的答复,我检查了,我应该访问, 进一步的调查显示,我尝试没有任何参数的任何命令工作正常,但带参数的命令返回错误,我想我没有正确执行它java,我只是不知道如何 – 2015-01-04 15:03:57