来自Java程序的命令行

时间:2016-02-17 14:38:48

标签: java

我正在尝试从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);
}

1 个答案:

答案 0 :(得分:3)

这是因为你试图用java程序打开一个交互式会话,据我所知。尝试将这些命令保存在批处理文件中,并从Java应用程序执行脚本。