1. 程式人生 > >Jmeter啟動報錯找不到KeyTool外掛

Jmeter啟動報錯找不到KeyTool外掛

之前換電腦後安裝jmeter,啟動後有如下報錯,度娘了好多地方,最後終於解決,現將解決方法記錄如下:

2017-04-28 03:44:11,571 ERROR o.a.j.e.KeyToolUtils: Exception checking for keytool existence, will return false


java.io.IOException: Cannot run program "keytool": CreateProcess error=2, The system cannot find the file specified
 
    at java.lang.ProcessBuilder.start(Unknown Source) ~[?:1.8.0_73]
 
    at org.apache.jorphan.exec.SystemCommand.run(SystemCommand.java:142) ~[jorphan.jar:3.2 r1790748]
 
    at org.apache.jorphan.exec.SystemCommand.run(SystemCommand.java:125) ~[jorphan.jar:3.2 r1790748]
 
    at org.apache.jorphan.exec.KeyToolUtils.checkKeytool(KeyToolUtils.java:436) ~[jorphan.jar:3.2 r1790748]
 
    at org.apache.jorphan.exec.KeyToolUtils.<clinit>(KeyToolUtils.java:94) ~[jorphan.jar:3.2 r1790748]
 
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.<clinit>(ProxyControl.java:248) ~[ApacheJMeter_http.jar:3.2 r1790748]
 
    at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.createPortPanel(ProxyControlGui.java:708) ~[ApacheJMeter_http.jar:3.2 r1790748]
 
    at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.init(ProxyControlGui.java:664) ~[ApacheJMeter_http.jar:3.2 r1790748]
 
    at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.<init>(ProxyControlGui.java:239) ~[ApacheJMeter_http.jar:3.2 r1790748]
 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_73]
 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_73]
 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_73]
 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_73]
 
    at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_73]
 
    at org.apache.jmeter.gui.util.MenuFactory.initializeMenus(MenuFactory.java:505) ~[ApacheJMeter_core.jar:3.2 r1790748]
 
    at org.apache.jmeter.gui.util.MenuFactory.<clinit>(MenuFactory.java:169) ~[ApacheJMeter_core.jar:3.2 r1790748]
 
    at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:93) ~[ApacheJMeter_core.jar:3.2 r1790748]
 
    at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:156) ~[ApacheJMeter_core.jar:3.2 r1790748]
 
    at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:46) ~[ApacheJMeter_core.jar:3.2 r1790748]
 
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:74) ~[ApacheJMeter_core.jar:3.2 r1790748]
 
    at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:59) ~[ApacheJMeter_core.jar:3.2 r1790748]
 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_73]
 
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_73]
 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_73]
 
    at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_73]
C
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
 
    at java.lang.ProcessImpl.create(Native Method) ~[?:1.8.0_73]
 
    at java.lang.ProcessImpl.<init>(Unknown Source) ~[?:1.8.0_73]
 
    at java.lang.ProcessImpl.start(Unknown Source) ~[?:1.8.0_73]
 
    ... 35 more
2
2017-04-28 03:44:14,937 INFO o.a.j.e.KeyToolUtils: keytool found at 'C:\Program Files\Java\jre1.8.0_73\bin\keytool'
2
2017-04-28 03:44:14,938 INFO o.a.j.p.h.p.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file D:\Jmeter\apache-jmeter-3.2\bin\proxyserver.jks
2
2017-04-28 03:44:15,997 INFO o.a.j.g.u.MenuFactory: Skipping org.apache.jmeter.protocol.java.sampler.BSFSampler
2
2017-04-28 03:44:16,117 INFO o.a.j.s.FileServer: Default base='D:\Jmeter\apache-jmeter-3.2\bin'
2
2017-04-28 03:44:16,852 INFO o.a.j.g.u.MenuFactory: Skipping org.apache.jmeter.protocol.mongodb.config.MongoSourceElement
2
2017-04-28 03:44:16,854 INFO o.a.j.g.u.MenuFactory: Skipping org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler
2
2017-04-28 03:44:20,136 INFO o.a.j.g.u.MenuFactory: Skipping org.apache.jmeter.timers.BSFTimer
2
2017-04-28 03:44:20,265 INFO o.a.j.g.u.MenuFactory: Skipping org.apache.jmeter.visualizers.BSFListener
2
2017-04-28 03:44:20,922 INFO o.a.j.s.SampleResult: Note: Sample TimeStamps are START times
2
2017-04-28 03:44:20,923 INFO o.a.j.s.SampleResult: sampleresult.default.encoding is set to ISO-8859-1
2
2017-04-28 03:44:20,923 INFO o.a.j.s.SampleResult: sampleresult.useNanoTime=true
2
2017-04-28 03:44:20,924 INFO o.a.j.s.SampleResult: sampleresult.nanoThreadSleep=5000


解決辦法:
通過echo %PATH% 檢視環境變數
C:\ProgramData\Oracle\Java\javapath;"%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin";
Notice the literal value %JAVA_HOME%\bin. This is caused by:
'PATH' contains reference of other variable
'PATH' is modified without evaluation (e.g. by program)
Solution
Open the environment setting box
Do some modification of the value of PATH (trigger the expansion of variables)(修改環境變數,path中直接設定JAVA的絕對路徑,如C:\Program Files\Java\jre1.8.0_73\bin)
再次檢視環境變數設定
就能識別JAVA的絕對路徑C:\Program Files\Java\jre1.8.0_73\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\NetSarang