肯定java 环境正常 ,启动jmeter 报 Not able to find Java executable or version. Please check your Java installa

from:https://zhuanlan.zhihu.com/p/29676788java

错误信息为:code

开始怀疑是环境变量JAVA_HOME和Path变量的配置问题,可是在cmd中输入:token

java -versionrem

javac -versionget

都是能够正常显示的。cmd

不得已,右键编辑,使用记事本打开jmeter的启动脚本jmeter.bat,发现里面有如下代码:io

for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
    rem @echo Debug Output: %%g
    set JAVAVER=%%g
)
if not defined JAVAVER (
    @echo Not able to find Java executable or version. Please check your Java installation.
    set ERRORLEVEL=2
    goto pause
)

逻辑很是简单,就是发现没有定义变量JAVAVER的时候就会抛出错误。table

而JAVAVER变量是在上方经过bat命令获取的,最后定义了set JAVAVER=%%g。class

显然是如下代码在运行时出现了错误,致使语句执行失败。变量

for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
    rem @echo Debug Output: %%g
    set JAVAVER=%%g
)

而这段代码的做用就是将java -version 2^>^&1 ^| findstr /i "version"'的包含version的行的第三个值赋值给变量JAVAVER。

考虑到不一样的朋友的系统自己的设置问题,我没有去深刻研究系统层面对脚本执行的影响,就当前问题而言,解决方案为:

在java正常的状况下,但愿可以使用jmeter,只须要在检测JAVAVER变量以前,手动设置JAVAVER变量便可。

代码以下:

for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
    rem @echo Debug Output: %%g
    set JAVAVER=%%g
)
set JAVAVER=1.8.0_131
if not defined JAVAVER (
    @echo Not able to find Java executable or version. Please check your Java installation.
    set ERRORLEVEL=2
    goto pause
)

其中:set JAVAVER=1.8.0_131,这个1.8.0_131根据实际的java -version获取的值来填写。

而后保存,就会发现Jmeter.bat能够运行啦。

相关文章
相关标签/搜索