如何使用命令行将批处理变量作为参数传递给Java类main方法?我想使用命令行将文本文件的内容作为参数传递给Java类。例如:me = int(text[0]) + 100
我尝试了以下代码,但似乎不起作用:
Java -jar TestJar.jar %BATCH_VAR%
答案 0 :(得分:1)
我怀疑您可能对变量中存储的值有误解。因此,让我澄清一下批处理文件中正在发生的事情。
set keyvalue=^&Type TestDoc.txt
echo %keyvalue% /// This is printing the right value.
这是 not 打印正确的值。您已完成的工作将为变量分配值&Type TestDoc.txt
。然后,您输入echo %keyvalue%
时,此行将扩展为以下行:
echo &Type TestDoc.txt
这实际上是两个单独的命令。第一个echo
仅查询回声设置当前是打开还是关闭。然后执行第二个命令Type TestDoc.txt
。
变量keyvalue
永远不会包含文件的内容。
因此,当您的批次中有此行时:
java -jar ErrorUpdate.jar "%keyvalue%"
它扩展为:
java -jar ErrorUpdate.jar "&Type TestDoc.txt"
这次,&
用引号引起来,因此它不用作语句分隔符,而是传递给Java类的main方法。您的主要方法只是看到字符串"&Type TestDoc.txt"
作为args[0]
传入。
如果您希望Java应用程序接收文件的全部内容,则需要使Java应用程序读取其内容本身。