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