肯定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能夠運行啦。

相關文章
相關標籤/搜索