簡體   English   中英

無法從JSP啟動.bat文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM