1.Jsch通过ssh登录到远程linux服务器是通过读取/etc/bash_bashrc 和 个人用户目录下的.bashrc ,
2.通过secureCRT方式登录的时候 读取的是/etc/profile 和 个人用户目录下的 .bash_profile .bash_login .profile (这三个文件优先级一次降低,读取到高优先级的一个文件,则后面的文件不再读取,解决方式,可以再高优先级文件总加上 source 想要加载的文件,比如 想要在.bash_profile中 读取 .profile的内容,则在.bash_profile 总增加 source ~/.profile)
所以虽然在.profile 中配置了ORACLE_HOME ,PATH(path中的oracle配置) 等环境变量,通过Jsch读取的(通过Jsch执行env查看)环境变量没有ORACLE_HOME PATH(path中的oracle配置)等相关配置信息
解决方案: 在个人目录 . bashrc的末尾增加加载 .profile的操作
将内容 : source ~/.profile 放到.bashrc末尾 保存即可
具体的SSH登录时环境变量的问题请参考下面链接
http://m.blog.csdn.net/whitehack/article/details/51705889?from=singlemessage&isappinstalled=0