我正在编写一个Java程序,并将在DOS批处理脚本中调用它。。。。(它是一个基于Swing的GUI应用程序)我希望在调用DOS脚本中获得Java程序的输出。我计划通过使用命令行参数来获得这些信息,比如
(在DOS脚本中)
java myProg var
if(%var%=="loggedin"){
}
var应该用myProg的输出填充。Java程序myProg应该设置值args[0](在var中),我假设当控制权回到DOS脚本时,这一点会被记住。这可能吗?如果没有,我如何实现我的用例?我有什么选择?如何将标志(如"loggedin")从myProg传递到调用DOS批处理脚本?
编辑:尝试使用dos命令"管道":
Command1 | Command2
Command1的输出(例如:System.out.println())将是Command2的输入参数Command1是运行java应用程序的命令Command2是将参数处理为%1、%2 的批处理文件
不能修改命令行参数;它们是文字。您唯一能做的就是将文本输出到stdout或stderr(正如yelliver建议的那样),设置环境变量,写入某种日志文件,或者返回退出代码。
"用myProg的输出填充var"的方法是(在DOS脚本中):
for /F "delims=" %%a in ('java myProg') do set "var=%%a"
请注意,Java程序必须"输出"要分配给var的值,也就是说,它必须在屏幕中显示该值(通过Stdout)。