-1

我们使用以下命令从 Perl 调用 Java 代码:

 $fh = IO::Handle->new();
 open($fh,"| $command");

命令是:java MyJavaClass

在 Java 代码中,我们需要提示用户使用System.in.

while (true)
{
    switch (c = in.read())
    {
        case '\n':
            break loop;
    }
}

问题是in.read()返回-1,即流结束。

有没有人有什么建议?

4

1 回答 1

0

你没有将任何东西传递到你正在打开的管道中。并且不需要IO::Handle因为open()会覆盖$fh。我认为它应该看起来像

 open(my $fh,"| $command");
 print $fh "Mypassword\n";
于 2013-03-06T11:58:47.000 回答