有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一本书。jar文件和一个特定的jre文件夹。jar,这样用户就不必下载Java,或者如果他们没有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然后关闭新的空白命令提示符,或者如果我关闭新的空白命令提示符,它也会关闭。罐子

我无法确切地理解为什么会出现这种情况,以及为什么它不只是退出启动命令的第一个命令提示符。罐子,然后就是了

为了试图解决这个问题,我从this等问题中获得了灵感

更新

只是尝试直接从命令提示符运行命令,而不是使用实际的。蝙蝠档案。但是因为我使用这个方法来获取jre和的完整路径。在Bat文件中,我不得不使用完整路径。然而,这一次,通过使用这种方法,它实际上起了作用

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

但是当使用相同的方法时。BAT文件不打开空白命令提示符,但它从不退出第一个“原始”命令提示符。


共 (1) 个答案

  1. # 1 楼答案

    经过几次不同的尝试,对于各种各样的命令,我发现对于我的例子来说,有效的方法是在任何命令的后记前面使用start /B。在我的例子中,命令如下所示

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

    我找到解决方案的问题/答案是following