Re: [JSch-users] simple jsch program not terminating, disconnect won't work? (jsch 0.1.5)
Status: Alpha
Brought to you by:
ymnk
From: <ym...@jc...> - 2003-05-13 05:47:08
|
Hi, +-From: "Jan van Oorschot" <jan...@ho...> -- |_Date: Tue, 13 May 2003 07:08:08 +0200 __________________ | |The issue is that the program won't terminate, even though the |disconnect calls are there. I have tried several permutations, |read through most of the mail archives and even peeked at the jsch |source code for five mins. It's probably some thread still being |active, but some kind soul could save me a lot of time with some |hint or tip. A thread is waiting for inputs from 'System.in'. So, if 'channel.setInputStream(System.in)' is commented out, that program will terminate. |public class Test1 { | | public static void main(String[] args) { // channel.setInputStream(System.in); | channel.setOutputStream(System.out); And also, if you want to use 'System.out', you should wait for the end of remote exec. | channel.connect(); while(true){ if(channel.isEOF()) break; Thread.sleep(10000); } | session.disconnect(); In other style, how about using passive input stream? I mean that InputStream in=channel.getInputStream(); channel.connect(); byte[] foo=new byte[1024]; int len; while((len=in.read(foo, 0, 1024))>0){ System.out.print(new String(foo, 0, len)); } session.disconnect(); Thanks, -- ymnk |