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