Re: Running JCTerm on MacOSX
新城@筑波大学情報です。こんにちは。
In article <m3he1a5q9j.fsf@maedapc.cc.tsukuba.ac.jp>
maeda-news@ialab.is.tsukuba.ac.jp writes:
> > % java -classpath ../jsch-0.1.8/src:./src com.jcraft.jcterm.JCTerm
> > java.lang.ClassNotFoundException: com.jcraft.jsch.jce.Random
> ./src/com/jcraft/jsch/jch/Random.class は存在するのでしょうか?
あ、これは存在しませんでした。javac com/jcraft/jsch/*.java
はしたのですが、その子供までは javac していませんでした。そ
の部分を javac *java して Random.class を作るとRandom 云々の
エラーは消えましたが、状況はあまり変りません。
In article <m3llqm5qr1.fsf@maedapc.cc.tsukuba.ac.jp>
maeda-news@ialab.is.tsukuba.ac.jp writes:
> (2) HostBasedAuthenticationをしようとして,特権ポートがbindできない.
root でやってみても、この通りです。メニューから接続に行くと
こうなります。
------------------------------------------------------------
# java -classpath ../jsch-0.1.8/src:./src com.jcraft.jcterm.JCTerm
java.net.BindException: Can't assign requested address
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:331)
at java.net.Socket.bind(Socket.java:472)
at java.net.Socket.<init>(Socket.java:289)
at java.net.Socket.<init>(Socket.java:119)
at com.jcraft.jsch.Session.connect(Session.java:165)
at com.jcraft.jcterm.JCTerm.run(JCTerm.java:216)
at java.lang.Thread.run(Thread.java:554)
------------------------------------------------------------
この部分のソース・プログラムを見てみました。
------------------------------------------------------------
public void connect() throws JSchException{
...
if(proxy==null){
...
if(socket_factory==null){
if(timeout==0){
165: socket=new Socket(host, port);
}
else{
...
new Thread(new Runnable(){
sockp[0]=new Socket(host, port);
...
------------------------------------------------------------
まあ普通ですよね。しかし、上のバックとレースを見ると、
Socket() (クライアント側)なのに、bind しているということにな
ります。何か変な感じ。サーバ側なら bind は、必須として
クライアント側ではやらなくてもいいはずなのに。
ktrace で確認するとたしかに bind(2) していました。
------------------------------------------------------------
2313 java CALL socket(0x1e,0x1,0)
2313 java RET socket 11/0xb
2313 java CALL listen(0xb,0x1)
2313 java RET listen -1 errno 49 Can't assign requested address
2313 java CALL close(0xb)
2313 java RET close 0
2313 java CALL socket(0x1e,0x1,0)
2313 java RET socket 11/0xb
2313 java CALL bind(0xb,0xf06bc560,0x1c)
2313 java RET bind -1 errno 49 Can't assign requested address
2313 java CALL shutdown(0xb,0x2)
2313 java RET shutdown 0
2313 java CALL close(0xb)
2313 java RET close 0
2313 java CALL write(0x2,0xf06b8160,0x36)
2313 java GIO fd 2 wrote 54 bytes
"java.net.BindException: Can't assign requested address"
2313 java RET write 54/0x36
------------------------------------------------------------
> examples/READMEによると,CLASSPATHの設定が必要みたいですが,これは行なっ
> てみましたでしょうか?
java -classpath ではなくて setenv しても同じでした。
なんなんでしょうね。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735