我们使用以下命令从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,即流结束。
有人有什么建议吗?
您打开的管道中没有传递任何内容。不需要IO::Handle
,因为open()
将覆盖$fh
。我觉得应该是这样的
open(my $fh,"| $command");
print $fh "Mypasswordn";