首页 > 解决方案 > 脚本无法检测到 java VM 可执行文件

问题描述

我在 SOAPUI 项目中通过 groovy 脚本使用 ssh 命令,它工作得很好,但是现在,我遇到了一个奇怪的问题。

我想执行一个shell,但它不起作用,我得到以下回报:

1806424 This script was unable to detect the java VM executable. Please set the VM_HOME environment variable or add the 'java' to the executable PATH.  Current VM_HOME is  

因此,我尝试将 VM_HOME 变量设置为指向 jvm.dll,将其添加到 PATH 中,然后我可以使用常规脚本检查 SOAPUI 是否正确检测到它:

def java_home = context.expand('${#Env#VM_HOME}');
log.info java_home

给我

Thu Jul 04 09:04:25 CEST 2019: INFO: C:\Program Files\Java\jdk-11.0.3

但是,我的 ssh 命令仍然返回相同的东西!?当前 VM_HOME 是 '' 在我的测试用例中,前两个步骤也启动 .sh 并且它们按预期工作,只有这个失败

如果我通过终端直接在我的服务器上启动脚本,它工作正常。

谢谢你的帮助

标签: groovyjvmready-api

解决方案


好吧,终于有人可以帮助我(谢谢皮埃尔!),我找到了解决方案:当我直接在服务器中回显路径时,我可以看到

/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin:/usr/bin/ejre1.8.0_202/bin

当我通过 SOAP UI 和 ssh 命令回显路径时,我只能看到

/usr/bin:/bin:/usr/sbin:/sbin

(我不知道是否可以在 SOAP UI 设置中设置此路径?如果有人知道...)无论如何,我不得不强制将路径设置为想要的值,这可以使用以下命令完成:

export PATH=$PATH:/usr/bin/X11:/usr/local/bin:/usr/bin/ejre1.8.0_202/bin && <my_command>

这按预期工作。


推荐阅读