Java-从程序中获取输出..命令行参数



我正在编写一个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)。

最新更新