使用jcraft连接sftp的时候会抛出一些数字异常,但是在网上基本找不到,看源码也看不懂什么意思,自己遇到过几次,简单记录一下:
1.异常4:可能代表连接被关闭了,所以任何操作都会有这个异常,比如执行命令cd/pwd/ls之类都无法执行并会抛出该异常
4:
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:359)
at cn.cas.xjipc.tool.ftptool.FtpTool.cd(FtpTool.java:120)
at cn.cas.xjipc.Test.main(Test.java:38)
Caused by: java.io.IOException: Pipe closed
at java.io.PipedInputStream.read(PipedInputStream.java:307)
at com.jcraft.jsch.Channel$MyPipedInputStream.updateReadSide(Channel.java:362)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:337)
... 2 more
不过异常内容里也提示了“Pipe closed”
2.异常2:可能代表路径,或者文件名有误导致无法找到
我是调用ChannelSftp.rm(fielname)方法抛出的这个异常,如果文件名是正确的那么考虑一下是不是字符集的问题。
2: Failure
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2876)
at com.jcraft.jsch.ChannelSftp.rm(ChannelSftp.java:1985)
at cn.cas.xjipc.tool.ftptool.FtpTool.deleteFile(FtpTool.java:249)
at cn.cas.xjipc.Test.main(Test.java:38)
以上是个人理解