用Java远程执行shell命令出现java: command not found

不问归期 提交于 2020-03-10 06:34:43

一、问题发现:

在使用jsch远程调用shell命令时,提示java: command not found。

这个错误的意思是linux的环境变量里没有配置JAVA_HOME的内容。

但是我在Linux上查看了一下环境变量,发现已经配置了。

vim /etc/profile


二、解决办法

经过多方查找原因后发现是因为远程执行shell脚本时,不会自动加载环境变量,导致出现此错误,
解决方案就是在脚本前加上这段代码即可。

source /etc/profile;

比如:

source /etc/profile;java -version

多个命令之间用分号隔开。

三、扩展补充

执行多条命令的分隔号区别:

  • 每条命令使用";"隔开,则无论前边的命令执行成功与否都会继续执行下一条命令
  • 若命令间使用"&&"隔开,则只有前边的命令执行成功了再会继续执行后边的命令
  • 若命令间使用"||"隔开,则只有前边的命令执行失败了再回继续执行后边的命令

四、更多

获取更多技术方面的文章,欢迎关注我的微信公众号:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!