我想弄清楚Jsch sftp框架是否可以支持站点命令,如lrecl
, blksize
, mgtmclass
等,当试图从非大型机环境sftp到大型机(zos)环境
从我目前所看到的情况来看,SFTP规范似乎不直接支持site命令,但我不能100%确定该信息是否准确。
在研究JSch时,似乎有一个ChannelExec
类似乎能够远程执行命令,但是这是否会满足我在这里的需求,我也没有能够确定。
一位专门研究大型机的同行也告诉我,ls /+/
可以使用一些大型机魔法,但如何将其应用到JSch中可用的任何类上,他就不知道了,因为Java不是他的专业领域。
我在一定程度上要回答我自己的问题,这是我没有想到的。经过大量的搜索,我偶然发现了一段我所需要的代码。
所以这使用了我的同伴所说的大型机魔法,使用ls
命令传递站点命令。
我只是选了一小段来展示我在这里想要完成的内容:
String lrecl = "/+/lrecl=128"
JSch jsch = new JSch();
Session session = jsch.getSession(user, hostName, port);
session.setPassword(password);
session.connect(120000);
ChannelSftp channel = (ChannelSftp)session.openChannel("sftp");
channel.connect(100000);
channel.ls(lrecl);
这只是代码的一部分,但确实显示了如何传递站点命令。我还没有确认是否所有的站点命令都可以这样发送。
希望这能帮助或节省一些时间。
关于这个方法的任何反馈或想法请告诉我。