windows使用javaw后台启动jar后不继续执行后续命令是怎么回事
时间: 2024-10-14 08:18:01 浏览: 23
当你在Windows系统上使用`javaw`命令启动Java应用程序(即`.jar`文件)并期望它在后台运行并且继续执行其他命令时,可能会遇到一些问题。通常有以下几个原因:
1. **默认行为**:`javaw`实际上是`java`的一个非图形版本,它会在后台创建一个新的Java虚拟机进程,然后立即退出。这意味着如果`javaw`命令之后没有附加其他的控制台输入,程序会立刻结束。
2. **命令顺序**:你需要确保你在命令行中正确地组织了命令。例如,如果你希望启动程序后执行额外的命令,你应该先启动`javaw`,然后再通过管道(`|`)将控制权传递给另一个命令。
```sh
javaw -jar your-jar-file.jar | command-to-execute-afterwards
```
3. **批处理脚本**:如果你是在批处理文件(`.bat`或`.cmd`)中操作,确保在`start`命令后添加所需的选项来保持窗口隐藏但程序在后台运行,如`start /min`。
4. **环境变量**:检查`JAVA_OPTS`等环境变量是否包含了指定程序保持运行的选项,比如`-Xnoagent -Djava.net.preferIPv4Stack=true -XX:+Use.system.jvm`。
相关问题
windows中后台运行jar包的命令
### 回答1:
您好,可以使用以下命令在 Windows 中后台运行 jar 包:
java -jar yourJarFile.jar > log.txt 2>&1 &
其中,yourJarFile.jar 是您要运行的 jar 包的文件名,log.txt 是输出日志的文件名。这个命令会将输出重定向到 log.txt 文件中,并在后台运行 jar 包。希望能对您有所帮助。
### 回答2:
在Windows中后台运行jar包的命令是使用java命令加上一些参数来执行。具体的命令如下:
1. 首先,按下Win+R键打开运行窗口,然后输入cmd并按下回车键打开命令提示符窗口。
2. 在命令提示符窗口中,使用cd命令进入jar包所在的目录,例如:cd C:\my\jar\path。
3. 接下来,使用以下命令来后台运行jar包:
java -jar yourJarFile.jar > output.log &
其中,yourJarFile.jar是你要运行的jar包文件名,output.log是输出日志的文件名,可以自定义,使用“>”将输出重定向到一个日志文件,"&"表示在后台运行。
4. 按下回车键执行命令,jar包将会在后台运行。你可以关闭命令提示符窗口,并在output.log文件中查看jar包运行的日志信息。
需要注意的是,上述命令中的路径、文件名和日志文件名需要根据实际情况进行修改,确保命令正确执行。另外,如果你的jar包需要一些额外的参数,可以在后面加上,如:java -jar yourJarFile.jar arg1 arg2 > output.log &。
### 回答3:
在Windows中,可以使用以下命令来后台运行一个jar包:
1. 打开命令提示符窗口 (按下Win键+R,输入cmd,然后点击"确定")。
2. 在命令提示符窗口中,输入以下命令:
start /B javaw -jar yourjarfile.jar
其中,yourjarfile.jar是你要后台运行的jar文件的名称。
3. 按下回车键来执行命令。
这个命令中的"start /B"表示在后台运行,"javaw"表示运行一个Java应用程序,"-jar"表示使用jar文件,并且"yourjarfile.jar"是你需要后台运行的jar文件的名称。
执行此命令后,会启动一个新的独立进程来运行jar文件,该进程与当前命令提示符窗口无关,所以可以关闭命令提示符窗口而不影响后台运行的jar文件。
希望对你有所帮助!
windows从命令行后台启动java进程, 并且输出pid
在 Windows 中,可以使用以下命令从命令行后台启动 Java 进程并输出其 PID:
```
for /f "tokens=2 delims=:" %a in ('tasklist /nh /fi "imagename eq javaw.exe" /fo csv') do @echo %a
start /B "Java Process" javaw -jar <JAR文件名>.jar
```
其中,`<JAR文件名>` 是要启动的 Java 应用程序的可执行 JAR 文件的名称。该命令会启动一个 `for` 循环,使用 `tasklist` 命令查找所有名为 `javaw.exe` 的进程,并输出它们的 PID。然后,该命令会在后台启动 Java 进程。
注意,`start` 命令中的 `/B` 选项指定启动进程时不显示新窗口。如果想要将输出保存到文件中,可以使用 `>>` 操作符将输出附加到文件末尾,例如:
```
for /f "tokens=2 delims=:" %a in ('tasklist /nh /fi "imagename eq javaw.exe" /fo csv') do @echo %a >> pid.txt
start /B "Java Process" javaw -jar <JAR文件名>.jar
```
这样,PID 将被输出到名为 `pid.txt` 的文件中。
阅读全文