如何与蚂蚁互动?

时间:2011-03-02 10:57:09

标签: java ant readline

在为一个类构建P2P应用程序的过程中,我在一个ant构建文件中启动一些对等体,然后以“交互”模式启动它。

关于该任务的ant文档指出,自ant-1.6.3

以来,人们可以与分叉应用程序进行交互

读取输入的代码是:


while (true) {
                System.out.println("> ");
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        System.in));
                String cmd = "";
                try {
                    cmd = br.readLine();
                    System.out.println(cmd + "hier");
                    if (cmd == null)
                        continue;
                    if (cmd.equals("hello")) {
                        System.out.println("Port: ");
                        int bsPort = new Integer(br.readLine());
                        System.out.println("IP (blank for localhost): ");
                        String bsIp = br.readLine();
                        if (bsIp.equals(""))
                            bsIp = "127.0.0.1";
                        bootstrap(bsIp, bsPort);
                    }
                    else if (cmd.equals("plist")) {
                        plist();
                    }
                    else if (cmd.equals("nlist")) {
                        nlist();
                    }
                    else {
                        System.out.println("Command was read as: " + cmd);
                    }

                } catch (IOException ioe) {
                    System.out.println("IO error trying to read your command!");
                    System.exit(1);
                }

相关的蚂蚁任务是:

蚂蚁任务显然不会被SO显示,但它基本上是一个java fork =“false”块。

值得注意的是,我并行运行根和后续对等 - >守护进程阻止它们在后台运行。这些是分叉的。

我尝试过fork =“true”和fork =“false”(找到一条说明将其设置为false的链接) - 两者都无济于事。

我找到了一个链接,说我可以使用TimedBufferedReader,但为了取悦蚂蚁,我有点谨慎......

1 个答案:

答案 0 :(得分:0)

似乎守护程序任务劫持了System.in。在那些上设置一个inputstring =“”参数阻止他们这样做,让我与交互式客户端进行交互。

只是为了让其他人知道,如果通过System.out.print而不是System.out.println输出,那么在给出输入之后就不会看到输出...