bat启动jar程序,想把程序执行过程中的system.out.print()原样输出程序中的输出信息或者捕获的异常信息到cmd窗口
时间: 2024-09-19 15:09:50 浏览: 54
批处理bat文件
当你需要通过`bat`脚本启动`jar`程序,并将程序运行过程中产生的`System.out.println()`或者其他标准输出的内容实时显示在命令行窗口(CMD或PowerShell)时,可以使用`java -jar`命令结合`RedirectOutput`特性来实现。
在`bat`文件中,你可以这样做:
```batch
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0 // 获取当前jar所在的目录
REM 使用">"重定向输出,这里会创建一个新的.txt文件保存日志,如果需要实时查看输出,可以换成">con:"
java -jar your-jar-file.jar > output.log 2>&1
REM 如果你想实现实时查看输出,可以改为下面这种方式,但是可能会有延迟:
rem java -jar your-jar-file.jar | tee output.log # 使用管道 tee 实时显示并保存
REM 等待程序结束后,打开log文件查看结果
start /wait notepad output.log
:: 如果想要实时查看输出并且不保留历史记录,可以使用以下命令,但这仅适用于Windows PowerShell:
:: powershell -Command "& { .\your-jar-file.jar; Start-Transcript -Path output.log }"
:: 结束后,关闭转储:
:: Stop-Transcript
pause
```
在这个例子中,`2>&1`用于合并标准输出(STDOUT)和错误输出(STDERR),这样所有的输出都会被重定向到指定的`output.log`文件。如果你想实时看到输出,可以考虑使用`tee`命令,但在某些环境(如Windows CMD)下可能不太方便。
阅读全文