Bat文件在退出

时间:2017-08-07 20:48:41

标签: java windows batch-file cmd jar

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

要启动此.jar文件,我使用的是.bat文件,如下所示。

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

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

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

要解决此问题,我尝试使用以下不同方法修改.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

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

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

为了尝试找出问题,我从this等问题中汲取了灵感。

更新

尝试直接从命令提示符运行命令,而不是使用实际的.bat文件。但是因为我使用该方法来获取Bat文件中jre和.jar的完整路径,所以我不得不使用完整路径。然而,这次使用这种方法实际上是有效的。

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

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

1 个答案:

答案 0 :(得分:3)

经过几次不同的尝试后,我发现各种命令对于我的情况来说,有效的方法是在任何命令后面使用Cursor res = db.rawQuery("select * from "+TABLE_NAME.trim()+" WHERE "+COL_2.trim()+" = Mike" , null); 。所以在我的情况下,命令看起来如下所示。

start /B

我找到修复程序的问题/答案是following