确定java 环境正常 ,启动jmeter 报 Not able to find Java executable or version. Please check your Java installation。
from:https://zhuanlan.zhihu.com/p/29676788
错误信息为:
开始怀疑是环境变量JAVA_HOME和Path变量的配置问题,但是在cmd中输入:
java -version
javac -version
都是可以正常显示的。
不得已,右键编辑,使用记事本打开jmeter的启动脚本jmeter.bat,发现里面有以下代码:
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的时候就会抛出错误。
而JAVAVER变量是在上方通过bat命令获取的,最后定义了set JAVAVER=%%g。
显然是以下代码在运行时出现了错误,导致语句执行失败。
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可以运行啦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了