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

时间:2014-10-10 02:00:43

标签: java windows batch-file

我正在编写一个Java程序,并将在DOS批处理脚本中调用它....(它是一个基于Swing的GUI应用程序)我希望从调用DOS脚本中的Java程序输出。我打算通过使用命令行参数来获取这些信息 - 比如

(在DOS脚本中)

java myProg var

if(%var%==“loggedin”) {

}

var应该使用myProg的输出填充。 Java程序myProg应该设置值args [0](在var中),我假设当控制回到DOS脚本时会记住这一点。 这可能吗? 如果不是,我怎样才能实现我的用例?我有什么选择? 如何将myProg中的标志(如“loggedin”)传递给调用的DOS批处理脚本?

3 个答案:

答案 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)。