作者smallma009 (我要努力认真!)
看板java
标题[JSP ] 请教有关Runtime.exec错误的问题
时间Mon Mar 2 13:24:23 2009
我想写一个网页 然後放在windows架的apache上
藉这个jsp网页去执行cluster程式 然後产生一些资料
再用网页去抓那些资料回来
目前我的想法是
写一个1.bat档内容是
@echo off
putty.exe -ssh xxx.xxx.xxx.xxx -l ptt -pw "ptt" -m linuxcmd.cmd
linuxcmd.cmd内容是
sync
cd mix1/
./testBash.sh
testBash.sh内容是
#!/bin/bash
/cluster/opt/mpich2/bin/mpdboot -n 8 -f mpd2.hosts
/cluster/opt/mpich2/bin/mpiexec -n 8 ./ok_MPI_GME_PBF.o
连结到cluster linux上去下指令
下一些执行的语法 等执行完会产生一些资料
再用网页抓资料回来
但是目前把bat放到apache上
网页的内容是
<%@ page contentType="text/html; charset=big5"
pageEncoding="Big5" language="java" import="java.sql.*,
java.util.Date, java.io.* , java.lang.Runtime.*" errorPage="" %>
<html><head><title>Insert title here</title></head><body>
<%
Runtime o_run_notepad = Runtime.getRuntime();
o_run_notepad.exec("1.bat");
%>
</body></html>
开启网页後会跳一个错误讯息
java.io.IOException: Cannot run program "1.bat": CreateProcess error=2
我在猜这个讯息是不是说我不能在远端的windows上建立process去执行?
如果我在我自己电脑上直接执行1.bat确定可以完整产生档案
但是把这几个档案放在网路远端 然後用网页去呼叫执行就会错
请问我该怎麽修改才可以让使用者利用网页就可以跑这个程式
不用把那些档案下载到自己端再执行
麻烦会的大大帮我解答一下 真的很感谢
***************************************************************
第一次try自己电脑上执行bat
目前我是先试在自己电脑上执行1.bat档
已确定可以连到cluster下指令执行平行程式
也确定有跑完 产生档案
第二次try利用网页执行本机端bat
再试验利用网页的方式去执行本机端的1.bat
当档案在自己电脑上时 确定可以正常跑完所有的指令
第三次try利用网页执行远端的bat档(绝对路径)
但是把那些档案放在server端时
再用网页方式去执行就会跳
type Exception report
message
description The server encountered an internal error () that prevented
it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /jsp_test/a/1.jsp:13
10: <%
11: Runtime o_run_notepad = Runtime.getRuntime();
12:
13: o_run_notepad.exec("
http://xxx.xxx.xxx.xxx/jsp_test/a/1.bat");
14:
15: %>
16:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(
JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:361)
org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(
JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.io.IOException: Cannot run program
"
http://xxx.xxx.xxx.xxx/jsp_test/a/1.bat": CreateProcess error=2,
‥t2Χ?‥i?uc
java.lang.ProcessBuilder.start(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
org.apache.jsp.jsp_005ftest.a._1_jsp._jspService(_1_jsp.java:58)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(Js
pServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.io.IOException: CreateProcess error=2, ‥t2Χ?‥i?uc
java.lang.ProcessImpl.create(Native Method)
java.lang.ProcessImpl.<init>(Unknown Source)
java.lang.ProcessImpl.start(Unknown Source)
java.lang.ProcessBuilder.start(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
org.apache.jsp.jsp_005ftest.a._1_jsp._jspService(_1_jsp.java:58)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in
the Apache Tomcat/5.5.26 logs.
这个错误
第四次try相对路径
org.apache.jasper.JasperException: Exception in JSP: /jsp_test/a/11.jsp:13
10: <%
11: Runtime o_run_notepad = Runtime.getRuntime();
12:
13: o_run_notepad.exec("1.bat");
14:
15: %>
16:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(
JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:361)
org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.io.IOException: Cannot run program "1.bat":
CreateProcess error=2, ‥t2Χ?‥i?uc
java.lang.ProcessBuilder.start(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
org.apache.jsp.jsp_005ftest.a._11_jsp._jspService(_11_jsp.java:58)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.io.IOException: CreateProcess error=2, ‥t2Χ?‥i?uc
java.lang.ProcessImpl.create(Native Method)
java.lang.ProcessImpl.<init>(Unknown Source)
java.lang.ProcessImpl.start(Unknown Source)
java.lang.ProcessBuilder.start(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
java.lang.Runtime.exec(Unknown Source)
org.apache.jsp.jsp_005ftest.a._11_jsp._jspService(_11_jsp.java:58)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.124.44.24
※ 编辑: smallma009 来自: 140.124.44.24 (03/02 13:26)
※ 编辑: smallma009 来自: 140.124.44.24 (03/03 17:52)