java - Bat-fil åbner blank kommandoprompt ved udgang

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en .jar fil og en jre mappe til den specifikke .jar, ved at brugeren ikke behøver at downloade Java eller hvis de ikke har det, vil den stadig arbejde.


For at starte denne .jar-fil bruger jeg en .bat-fil som vist nedenfor.


\%~dp0jreinjava.exe -jar \%~dp0myJar.jar


\%~dp0 delen bruges til at finde stien til jre-filen og .jar-filen.


Men problemet er, at hver gang .bat-filen har startet .jar-filen, er kommandoprompten stadig åben. Jeg forstår, at dette skyldes, at mit program er en 'vindue' app, og derfor vil kommandoprompten først lukkes, når .jar-programmet er færdigt.


For at rette dette har jeg forsøgt at ændre .bat-filen med følgende forskellige metoder. (ikke alle på en gang, en ad gangen)


start \%~dp0jreinjava.exe -jar \%~dp0myJar.jar

start "" "\%~dp0jreinjava.exe" -jar \%~dp0myJar.jar

start \%~dp0jreinjava.exe -jar \%~dp0myJar.jar 
exit

start "" "\%~dp0jreinjava.exe" -jar \%~dp0myJar.jar
exit

\%~dp0jreinjava.exe -jar \%~dp0myJar.jar 
exit


Men ... Når man bruger disse metoder, som synes at virke for andre mennesker, i stedet for at lukke kommandoprompen fuldstændigt. Den afslutter kommandoprompten, som starter .jar-filen og åbner derefter en tom kommandoprompt. Når du lukker .jar lukker den den nye blanke kommandoprompt, eller hvis jeg lukker den nye blanke kommandoprompt, lukker den også .jar


Jeg er ikke i stand til at finde ud af, præcis hvorfor dette er, og hvorfor det ikke bare afslutter den første kommandoprompt, der starter .jar og så er det.


For at forsøge at finde ud af problemet har jeg trukket inspiration fra spørgsmål som dette og mange flere.


Opdater



Bare forsøgt at køre kommandoen direkte fra en kommandoprompt i stedet for at bruge den faktiske .bat-fil. Men fordi jeg bruger metoden til at få den fulde vej af jre og .jar i Bat-filen, måtte jeg i stedet bruge hele stien. Ikke desto mindre virkede det faktisk denne gang ved at bruge denne metode.


mylongpathjreinjava.exe -jar mylongpathmyJar.jar 
exit


Men når du bruger den samme metode i .bat-filen, åbner den ikke kommandoprompten for tomt, men den afslutter aldrig den første 'originale' kommandoprompt.

Bedste reference


Efter et par forskellige forsøg med alle slags kommandoer har jeg fundet ud af, at det for mit tilfælde, hvad der arbejdes, er at bruge start /B foran uanset kommandoen afterwords. Så i mit tilfælde vil kommandoen ligne nedenfor.


start /B \%~dp0jreinjava.exe -jar \%~dp0myJar.jar


Spørgsmålet/svaret, hvor jeg fandt løsningen, er følgende [8]