使用.bat文件打开jar文件后跳过或自动回答问题

时间:2017-09-19 08:10:44

标签: java batch-file cmd jar

当我在cmd中使用此命令运行jar文件时。

  java -jar Reporter.jar p=Reporter.properties Sales.generateToken

它要求输入userName和密码(隐藏字段),然后要求Y / N

我想在控制台中自动回答这些问题。

我使用不同的技术创建了一个批处理文件,但没有一个工作 例如,我使用|编写了userName和密码和&其次我添加/ Q来强制执行它,而不是要求userName / Password和conformation。

没有一种技术可行。

我的bat文件看起来像这样

java -jar Reporter.jar p=Reporter.properties Sales.generateToken
& userName123
& Password123
& y

pause

,然后

我意识到用bat文件直接做到这一点是不可能的。 所以我创建了一个由bat文件构建和执行的小型java程序 像这样。

javac program.java
java program
pause

问题: 我想写一个程序,自动写入userName“abc”然后密码“123”然后“Y”;

目前我的程序看起来像这样。

import java.io.InputStream;
import java.lang.Runtime;
import java.lang.Process;

class program{
public static void main(String[] args){

try{
Process proc = Runtime.getRuntime().exec("java -jar Reporter.jar p=Reporter.properties Sales.generateToken");
    proc.waitFor();
    InputStream in = proc.getInputStream();

    byte b[]=new byte[in.available()];
    in.read(b,0,b.length);
    System.out.println(new String(b));

}catch(Exception ex)
{
    System.out.println(ex);
}
   }
}

我对如何继续使用输出流感到困惑。请帮忙

被修改

在bat文件中使用它

echo username.dk pas01% y& java -jar Reporter.jar p=Reporter.properties Sales.generateToken 
pause
pause
pause
我得到了 enter image description here

2 个答案:

答案 0 :(得分:0)

放入档案param.txt

yuserName123
yPassword123
y

三行,最后还有换行符。

java -jar Reporter.jar p=Reporter.properties Sales.generateToken <param.txt

现在,批处理文件将文件作为System.in传递。

答案 1 :(得分:0)

而不是像下面的运行时流程那样调用Reporter.jar

Process proc = Runtime.getRuntime().exec("java -jar Reporter.jar p=Reporter.properties Sales.generateToken");

我建议直接在项目中添加Reporter.jar(就像我们在C#中为DLL文件做的那样),然后从Jar调用相关函数。

Reporter Repo=new Reporter()
Repo.UserOrPasswordMEtho("Usrname","Password","Y");