3.9K Star 22.5K Fork 7.8K

GVPdromara / hutool

 / 详情

JschUtil中exec方法执行无法获取命令结果

已完成
创建于  
2019-11-19 10:17

使用的JDK版本和Hutool版本

jdk8 hutool 5.0.5

问题描述(包括截图)

String exec = JschUtil.exec(session, "ls", CharsetUtil.CHARSET_UTF_8);
运行结果不正确 命令执行结果为空

用以下代码就可以获取到命令执行结果
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand("ls");
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(System.err);
InputStream inputStream = channel.getInputStream();
channel.connect();
String str = IoUtil.read(inputStream, "utf-8");

我看exec方法源码中创建channel使用的是
ChannelExec channel = (ChannelExec)openChannel(session, ChannelType.EXEC);
这里是不是应该用
ChannelExec channel = (ChannelExec)createChannel(session, ChannelType.EXEC);

评论 (7)

Dingoog 创建了缺陷

这个我稍后本地测试下。

JschUtil 362 换成
ChannelExec exec = (ChannelExec) JschUtil.createChannel(session, ChannelType.EXEC);
确实可以,今天下午用JschUtil.exe()确实不行,不会执行,也没有返回信息。
2.JschUtil.createSftp(session).upload(srcFilePath, destFile);上传文件指定目录会把目录中斜杠去掉和文件名加在一起。
希望作者尽快发版。谢谢

我也遇到同样的问题了,没有返回信息怎么解决?

Looly 添加了
 
bug
标签

5.0.7修复问题。

1、确实存在
2、upload方法之前逻辑有误,我改了下下此方法。尝试看是否有问题。

Looly 任务状态待办的 修改为已完成

楼主怎么解决执行失败时,拿不到命令的运行结果问题的??

兄弟,解决了吗
:sob:

java执行一条启动应用的命令,会出现长时间阻塞,工具类该怎么调用?大佬,请给一个示例

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(6)
1463 loolly admin 1578914022 9981361 feng dongfei 1662547308 7715069 bugmchen 1592788650 116288 dingogo 1578918238
Java
1
https://gitee.com/dromara/hutool.git
git@gitee.com:dromara/hutool.git
dromara
hutool
hutool

搜索帮助