首页 > 解决方案 > 如何编写一个批处理文件,自动将输入提供给提示用户输入的java程序

问题描述

我想编写一个批处理文件,自动将输入提供给提示用户输入的 java 程序。

到目前为止,我的代码如下:

set path=C:\Program Files\Java\jdk-13.0.2\bin

javac *.java

java myJavaProgram

问题是当 myJavaProgram 执行时它会提示用户输入,所以批处理文件等待我提供输入以继续执行。我希望能够使用 .bat 自动传递输入。这可能吗?谢谢你的帮助!

编辑:更新问题以包含更多上下文。

更详细地说,当myJavaProgram从批处理文件执行时,它会提示用户从控制台输入并等待它。我必须给一个字符串。当我写字符串时,myJavaProgram用扫描仪读取它并用它做一些事情(不重要它做了什么)。然后它终止。我想更改批处理代码,以便在提示输入字符串时不需要编写字符串。我想在批处理文件中使用我的输入字符串设置一个变量,并将其作为myJavaProgram“绕过”控制台的输入。

标签: javabatch-file

解决方案


我找到了解决方案。我首先使用运算符echo将​​命令提示符窗口中的命令输出(字符串)重定向到文件。该文件现在包含我想作为输入提供给. 然后我打开并将输出发送到命令提示符窗口,作为使用运算符的输入。代码如下:temp.txt>temp.txtmyJavaProgramtemp.txtmyJavaProgram<

@echo off
If "%Path:~-1%" == ";" (Set "Path=%Path%%ProgramFiles%\Java\jdk-13.0.2\bin") Else Set "Path=%Path%;%ProgramFiles%\Java\jdk-13.0.2\bin"

javac.exe *.java

echo myString> temp.txt
java.exe myJavaProgram < temp.txt 

推荐阅读