gpt4 book ai didi

java - 使用批处理脚本触发2个java程序(Windows): multiple queries

转载 作者:行者123 更新时间:2023-12-01 11:26:52 27 4
gpt4 key购买 nike

查询 1
我有2个独立的java程序。
- MasterProgram.java - 由于高数据而运行很长时间
- MailProgram.java - 用于每 30 分钟通过邮件发送日志文件
我使用单个batchScript程序来触发这2个java程序。

我的要求是,
在“MasterProgram.java”完成之前,每 30 分钟“MailProgram.java”必须运行一次,一旦“MasterProgram.java”完成,“MailProgram.java”就必须运行。
任何实现逻辑的想法/替代解决方案都值得赞赏。

查询 2(与上述查询无关):
我使用批处理脚本异步触发2个java程序。

myprogram.bat

@ECHO OFF
start /b java Mainprogram :: program1
start /b java MainprogramAnother :: program2

是否可以回显程序的%ERRORLEVEL%,如下所示?

myprogram.bat
@ECHO OFF
start /b java Mainprogram :: program1
start /b java MainprogramAnother :: program2

echo "Program1 errorlevel"
:: i am aware that below will not print program1 status.
:: Can you suggest the right code to display %ERRORLEVEL% this way..
echo %ERRORLEVEL%
echo "Program2 errorlevel"
echo %ERRORLEVEL%

如果存在任何替代方法,请告诉我。

最佳答案

好吧,这是一个相当危险的解决方案,但为什么不尝试一下它是否有效:

主.bat

@echo off
start Side.bat
java MasterProgram.java
start java MailProgram.java
start taskkill /f /im cmd.exe

Side.bat

@echo off
:: Make sure 'MasterProgram.java' has properly started
sleep 5
:loop
start java MailProgram.java
sleep 1800
:: 1800 seconds = 30 minutes
goto loop

Main.bat 启动 side.bat 并等待 MasterProgram.java 在运行 MailProgram.java 之前执行。它以杀死 cmd.exe 的所有实例结束。

Side.bat 每 30 分钟运行一次 MailProgram.java,直到被 Main taskkilled .bat.

它应该适合你。

至于你的第二个问题,只需将其存储在变量中即可。

@ECHO OFF
start /b java Mainprogram :: program1
set p1=%ERRORLEVEL%
start /b java MainprogramAnother :: program2
set p2=%ERRORLEVEL%

echo "Program1 errorlevel"
echo %p1%
echo "Program2 errorlevel"
echo %p2%

关于java - 使用批处理脚本触发2个java程序(Windows): multiple queries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30751752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com