Bat文件在退出时打开空白命令提示符

我有一个.jar文件和一个特定的.jar文件夹,通过这样做,用户不必下载Java或者如果他们没有它,它仍然可以工作。

要启动这个.jar文件,我使用了一个如下所示的.bat文件。

%~dp0jre\bin\java.exe -jar %~dp0myJar.jar 

%~dp0部分用于查找jre文件和.jar文件的path。

但问题在于,每当.bat文件启动.jar文件时,命令提示符仍处于打开状态。 我知道这是因为我的程序是一个“窗口”应用程序,因此,一旦.jar程序完成,命令提示符将首先closures。

要解决这个问题,我试图用下面的不同方法修改.bat文件。 (不是一次一个,一次一个)

 start %~dp0jre\bin\java.exe -jar %~dp0myJar.jar start "" "%~dp0jre\bin\java.exe" -jar %~dp0myJar.jar start %~dp0jre\bin\java.exe -jar %~dp0myJar.jar exit start "" "%~dp0jre\bin\java.exe" -jar %~dp0myJar.jar exit %~dp0jre\bin\java.exe -jar %~dp0myJar.jar exit 

但是…当使用这些方法,似乎为其他人工作,而不是完全closures命令提示符。 它将退出启动.jar文件的命令提示符,然后打开一个空白的命令提示符。 当closures.jar时,它会closures新的空白命令提示符,或者如果closures新的空白命令提示符,它也会closures.jar

我无法弄清楚为什么这是,为什么它不只是退出启动.jar的第一个命令提示符,然后就是这样。

为了弄清楚这个问题,我从这样的问题中得到了很多启发。

更新

试图直接从命令提示符运行命令,而不是使用实际的.bat文件。 但是因为我正在使用该方法来获取Bat文件中jre和.jar的完整path,所以我不得不使用完整path。 尽pipe如此,通过使用这种方法,这次实际上是有效的。

 my\long\path\jre\bin\java.exe -jar my\long\path\myJar.jar exit 

但是,在.bat文件中使用相同的方法时,它不会打开空白命令提示符,但它永远不会退出第一个“原始”命令提示符。

经过几次不同的尝试之后,我发现对于我的情况来说,在任何命令之前使用start /B都是有效的。 所以在我的情况下,命令如下所示。

 start /B %~dp0jre\bin\java.exe -jar %~dp0myJar.jar 

问题/答案我找到了解决办法如下