在jetty批量启动后运行命令

时间:2010-08-10 07:59:11

标签: windows batch-file jetty

好的,这是问题所在。

我的目标是在Jetty启动时运行FF Portable。我的start.bat看起来像这样:

@echo off
start /B start_jetty.bat 
start /B start_firefox.bat 

start_jetty.bat:

@echo off
cd jetty-7.1.6/
java -jar start.jar 

start_firefox.bat:

@echo off
ping -n 1 -w 6000 0.0.0.1
"%cd%\FirefoxPortable\FirefoxPortable.exe" 

问题:

  1. 如何在jetty启动后使start_firefox.bat执行?
  2. 完成 - 如何在没有任何控制台的情况下运行这两个批处理?
  3. 关闭firefox后如何停止码头?
  4. 有什么方法可以让它更清洁,更安全吗?

  5. 编辑:/ B作为启动命令选项消除了额外的控制台窗口。 edit2:firefox启动时的技巧,现在它在启动前等待6秒。

2 个答案:

答案 0 :(得分:1)

关于第一个问题,请尝试以下方法:

@echo off
  CALL start /B start_jetty.bat 
  CALL start /B start_firefox.bat 

答案 1 :(得分:0)

所以我的解决方案看起来像这样:

start.bat:

@echo off
REM is there java in system!
cls
setlocal ENABLEEXTENSIONS
set KEY_NAME="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment"
set VALUE_NAME=CurrentVersion
FOR /F "usebackq skip=4 tokens=3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`)    DO (
    set ValueValue=%%A
)

if defined ValueValue (
    goto java_ok
) else (
    goto java_not_ok
)

:java_not_ok
REM there's no java 
msg * "There is no java in your system!"
goto:EOF

:java_ok
REM there is java
start /B start_jetty.bat 
start /B start_firefox.bat 
goto:EOF

start_jetty.bat

@echo off
cd jetty-7.1.6/
java -DSTOP.PORT=8087 -DSTOP.KEY=stopme  -jar start.jar

start_firefox.bat

@echo off
ping -n 1 -w 6000 0.0.0.1
"%cd%\GoogleChromePortable\GoogleChromePortable.exe"
cd jetty-7.1.6/
java -DSTOP.PORT=8087 -DSTOP.KEY=stopme  -jar start.jar --stop

是的我知道启动firefox实际上是启动chrome,但是!

  1. FirefoxPortable如果还有其他firefox正在使用,则无法启动。
  2. 如果我决定将FFPortable设置为multiinstance,则在FFP打开后,start_firefox.bat中的指令会立即执行。不是在它关闭之后。