字符串 这里发生的是远程主机上的sshd守护进程将执行用户的默认shell并要求shell执行命令行。shell通常不作为“登录shell”执行,这意味着shell将跳过用户交互登录时登录shell通常执行的初始化步骤。 你可以研究一下man (name of your shell),看看有-l选项的shell和没有-l选项的shell到底有什么区别。在bash的情况下,它本质上意味着.profile和.bashrc不会被执行,所以你可能在那里的任何PATH修改都不会发生。 我认为最好的办法是在执行jar命令时提供它的完整路径。
5条答案
按热度按时间ars1skjm1#
安装Java devel如下:
字符串
twh00eeo2#
具体来说,
JAVA
bin目录不在您的PATH
变量中。将其添加到PATH
变量中。为了搜索可执行文件,操作系统需要查找目录列表。因此,添加包含'jartool in the
PATH环境变量的目录 注意:对于Windows,路径分隔符是(
;),对于类Unix操作系统,路径分隔符是(
:`)nuypyhwy3#
“[sshexec]”告诉我你正在使用一些Jenkins插件在远程主机上执行命令。
这通常意味着Jenkins会执行以下操作(或者通过原生实现SSH协议来执行等效操作):
字符串
这里发生的是远程主机上的sshd守护进程将执行用户的默认shell并要求shell执行命令行。shell通常不作为“登录shell”执行,这意味着shell将跳过用户交互登录时登录shell通常执行的初始化步骤。
你可以研究一下
man (name of your shell)
,看看有-l
选项的shell和没有-l
选项的shell到底有什么区别。在bash的情况下,它本质上意味着.profile
和.bashrc
不会被执行,所以你可能在那里的任何PATH修改都不会发生。我认为最好的办法是在执行
jar
命令时提供它的完整路径。wh6knrhe4#
当您在远程主机上执行命令时,它将在远程主机上调用新的Shell。您在当前主机.bashrc文件中设置的PATH不会有任何区别。相反,如果您在远程主机的.bashrc文件中为Java设置PATH,则应该可以工作,否则如果您正在运行任何脚本,则请提到类似于/usr/jdk 64/jdk1.8.0_40/bin/jar -tf /的完整路径tmp/jars/abc.jar,同时在远程主机上调用命令。
有两种方法:
1./usr/jdk 64/jdk1.8.0_40/bin/jar -tf/tmp/jars/abc.jar-->从远程主机调用jar命令,并使用完整的路径为JAR创建路径。
cvxl0en25#
对于Ubuntu 22.04:
字符串