Java J2SSH ChannelInputStream读取方法用tail-f锁定

Java J2SSH ChannelInputStream读取方法用tail-f锁定,java,bash,tail,j2ssh,Java,Bash,Tail,J2ssh,J2SSH ChannelInputStream读取方法能够从命令获取输出。然而,如果我试图通过J2SSH执行“tail-f file.txt>output.txt&”(bash),read方法就会被锁定。我认为这是因为在“tail-f”中没有可读取的输出 好的,我尝试做的是在后台启动一个“tail-f”,读取bash输出以确保“tail”正确启动(没有从bash收到退出代码错误),并遵循我的java代码流(是的,tail-f将在操作系统中保持运行)。然而,我被锁定在(ChannelInputS

J2SSH ChannelInputStream读取方法能够从命令获取输出。然而,如果我试图通过J2SSH执行“tail-f file.txt>output.txt&”(bash),read方法就会被锁定。我认为这是因为在“tail-f”中没有可读取的输出

好的,我尝试做的是在后台启动一个“tail-f”,读取bash输出以确保“tail”正确启动(没有从bash收到退出代码错误),并遵循我的java代码流(是的,tail-f将在操作系统中保持运行)。然而,我被锁定在(ChannelInputStream)读取方法中,等待一个输出,可能来自tail-f

如果我终止tail-f进程,代码流将恢复正常。这意味着(ChannelInputStream)读取方法不能很好地与“tail-f”配合使用

有什么建议吗?有没有办法将bash中的内容发送到read方法,以表示遵循流程

 while  ((bytesRead = stream.read(buffer,0,buffer.size()-1)) > 0){ ...

“stream是ChannelInputStream类型”

可能
tail-f file.txt>output.txt
缓冲输出,所以在tail有大约4k或8k的写入空间之前,您不会在output.txt中看到任何内容。这有关系吗?