Jsch 执行jps命令没有结果 - 解决方案

ChannelExec exec = (ChannelExec)session.openChannel("exec");

执行jps命令时:

exec.setCommand("jps");
/* ... */

不会输出结果
因为jps不是虚拟机内置的命令,而是java提供的一个显示当前所有java进程pid的命令,所以需要用source命令将java的环境变量以及bash"刷"一遍:

exec.setCommand("source /etc/profile;source ~/.bash_profile;source ~/.bashrc;jps;");
/* ... */

这样就可以了,遇到其他的命令也是如此


版权声明:本文为qq_43613793原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。