[英]unable to start .bat file from JSP
我有一個批處理文件runthis.bat
目錄> dir.txt
如果我雙擊此文件,則將創建一個名為dir.txt的文本文件。
現在,我必須使用JSP運行此批處理文件。
<%
Runtime run =Runtime.getRuntime();
run.exec("C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/try/runthis.bat");
out.println("SUCCESS");
%>
我在網頁上獲得成功的輸出,但此批處理文件未運行。
可能是什么問題?
首先,JSP是錯誤的地方。 在真正的Java類中進行操作。 從Servlet開始。 有一個帶有按鈕的表單,該表單提交給Servlet。 將此代碼放在doPost()
方法中。 讓servlet將結果放入請求范圍,並將請求轉發到JSP。 讓JSP顯示結果。
第二,在本文中了解Runtime#exec()
的陷阱。 您的問題是您沒有檢查結果或錯誤流(因此永遠不知道程序是否成功執行),並且期望它以某種方式與您的編碼同步運行(而實際上卻在單獨的線程中運行/處理)。 您基本上是在“一勞永逸”,代碼基本上不會以任何方式跟蹤程序的執行/終止。
順便說一下,這個問題與JSP無關。 在普通的Java類中,您將面臨完全相同的問題。
嘗試執行:
cmd /c your.bat
那是:
run.exec("cmd /c C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/try/runthis.bat");
編輯:
我建議您在路徑內的空格時要小心。 如果您轉義了它們或用引號(“”)括住了整個路徑,那就太好了。
我猜你應該在路徑中使用退格鍵:
run.exec("C:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\try\\runthis.bat");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.