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;");
/* ... */
这样就可以了,遇到其他的命令也是如此