我正在尝试从Java程序运行批处理文件,并在执行后从Java程序传递一些参数。
如果我传递两个以上的参数,它就不起作用。
那么如何在通过Java程序运行批处理文件时逐个传递参数?
String destDir = "D:\\JbossCacheFinal\\infinispan-server-8.1.1.Final\\bin\\ispn-cli.bat";
Runtime rt = Runtime.getRuntime();
String[] cmd = new String[2];
cmd[0] = destDir;
cmd[1] = "connect jboss1ind1";
// cmd[2] = "user.admin";
/*
* cmd[3] = "Admin@123";
* cmd[4] = "cd profile=clustered/subsystem=datagrid-infinispan/cache-container=clustered";
* cmd[5] = "/distributed-cache=tejas:add(configuration=default)";
*/
Process p = rt.exec(cmd);
/* writer.write("connect jboss1ind1"); */
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(p.getOutputStream()));
Thread.sleep(2000);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
// read the output from the command
System.out.println("System returns message:\n");
String s = null;
while ((s = stdInput.readLine()) != null)
{
System.out.println(s);
}
答案 0 :(得分:3)
这是因为你试图用java程序打开一个交互式会话,据我所知。尝试将这些命令保存在批处理文件中,并从Java应用程序执行脚本。