groovy - 脚本无法检测到 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 并且它们按预期工作,只有这个失败
如果我通过终端直接在我的服务器上启动脚本,它工作正常。
谢谢你的帮助
解决方案
好吧,终于有人可以帮助我(谢谢皮埃尔!),我找到了解决方案:当我直接在服务器中回显路径时,我可以看到
/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>
这按预期工作。
推荐阅读
- angular - 我应该为此创建服务吗?
- react-native - 使用 React Navigation 时,FlatList 和 ScrollView 不使用 React Native Web 滚动
- python - KIVY:如何将数据列表打印到第二个屏幕而不是第一个屏幕
- ethereum - 在不破坏交易所的情况下对每笔交易征税
- python - 如何获取多值列中的元素总数
- python - 在 Python 中通过插值填充缺失的数据
- lucene.net - 如何在 Dotnet Lucene 中实现 Soundex?
- java - 无法从运行 Java 的 Lambda 检索 AWS 机密
- dataframe - 从单列创建多列 - Scala spark
- c# - 模拟时检查构造函数值