2017-08-24 26 views
0

我遇到了問題,試圖讓我的Windows批處理文件在後臺啓動Jetty Web服務器,然後啓動IE。目前的行爲是,它開始我的Jetty網絡服務器後,它不會返回到啓動IE瀏覽器。它只是停留在那裏,直到我終止Web服務器,然後批處理腳本將繼續並啓動IE。獲取Windows批處理文件在後臺執行應用程序,然後執行下一條語句

這裏是我的批處理腳本

SET JAVA_HOME=".\openjdk-1.8.0.141" 
SET JETTY_HOME=".\jetty-distribution-9.4.6.v20170531" 

start /B cd /d "%~dp0" & %JAVA_HOME%\bin\javaw -DSTOP.PORT=8081 -DSTOP.KEY=stop_jetty -Djetty.base=%JETTY_HOME% -jar %JETTY_HOME%\start.jar 

"C:\Program Files\Internet Explorer\iexplore.exe" http://localhost:8080/foo-tools 

你能找出任何明顯嗎?我已經使用'start/B'嘗試在後臺啓動它。我必須將目錄更改回當前工作目錄,否則我設置的變量將不起作用。

在此先感謝!

+0

我懷疑你的腳本可能會啓動「啓動光盤」,但其餘部分將作爲下一條語句執行。如果你引用整個開始的論點呢? –

+0

您是否嘗試完全刪除'start/B',並簡單地運行'cd/d「%〜dp0」&'+該行的其餘部分?或者甚至完全將兩個獨立的行分開「cd」和其餘行(仍然沒有'start/B')?或者在'/ B'後加'/ nowait'? –

+0

「start」的第一個引用參數成爲窗口標題。在'/ B'後面添加一對雙引號,以提供虛擬窗口標題。 'cd'命令中的引號不是必需的。將'cd ... end'放在一對引號中,並將'set'語句中的引號從'='之前移到變量名之前。這應該能解決你的問題。 – Magoo

回答

0

爲什麼不簡化東西並且規定腳本路徑與START/D <Path>參數?

SET "JAVA_HOME=openjdk-1.8.0.141" 
SET "JETTY_HOME=jetty-distribution-9.4.6.v20170531" 

START "" /D "%~dp0" "%JAVA_HOME%\bin\javaw" -DSTOP.PORT=8081 -DSTOP.KEY=stop_jetty -Djetty.base="%JETTY_HOME%" -jar "%JETTY_HOME%\start.jar" 

START "" "%PROGRAMFILES%\Internet Explorer\iexplore.exe" http://localhost:8080/foo-tools 

我錯過了斷START/B參數,因爲它是我的理解是javaw.exe不無論如何打開CMD窗口。如果我的理解不正確,請在"%JAVA_HOME%之前將其添加回去。

對於IE的START命令只有在您再次需要腳本或不希望cmd窗口保持打開狀態時才真正需要。

相關問題