首页 > 解决方案 > 如何防止在 child.bat 完成之前终止 parent.bat

问题描述

我正在使用 java 代码通过执行 .bat 文件来生成碧玉报告。

我的 java 代码使用 process.waitsfor() 直到进程完成。

我的java代码

builder = new ProcessBuilder("cmd", "/c", batFilePath, reportName, tmpParFilePath, exportFilePath);
p = builder.start();
//um using  threads to consume p.ErrorStream and p.InputStream
p.waitFor();

在我的 parent.bat 文件中,我正在调用 child.bat 文件,并且我不想在 child.bat 文件完成之前终止 parent.bat 文件。

这是我的 parent.bat 文件

@echo off
SET CURRENT_DIR_PATH=%~dp0
rem Parameters (%1 = Report Name, %2 = Non-standard Parameters File, %3 = Export File Name)
%CURRENT_DIR_PATH%reportViewer.bat %1.jasper %2 %3
exit 0

这是我的 child.bat 文件

rem @echo off
rem Parameters (%1 = Report Name, %2 = Non-standard Parameters File)

SET PLANON_JVM_PATH=.\jre\bin
SET VIEWER_JAR_PATH=aia-bi-tools-reportmanager-1.1.jar
SET REPORTS_DIR_PATH=..\reports
SET DATASOURCE_CONFIG_FILE=jdbc.conf
SET PARAMETERS_DIR_PATH=..\reports
SET CURRENT_DIR_PATH=%~dp0

%PLANON_JVM_PATH%\java -jar %CURRENT_DIR_PATH%%VIEWER_JAR_PATH% - 
R%CURRENT_DIR_PATH%%REPORTS_DIR_PATH%\%1 - 
C%CURRENT_DIR_PATH%%DATASOURCE_CONFIG_FILE% -P%2 -E%3
exit 0

.bat 文件需要进行哪些更改才能完成上述要求

标签: javabatch-fileconcurrencyprocess

解决方案


推荐阅读