JMeter右键点击Test Plan报错,无法执行右键操作
JMeter右键Test Plan报错无法执行操作的解决方案
错误核心信息
右键点击Test Plan时触发的核心错误为:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory
其根源是MenuFactory类初始化阶段,在separateItemsWithExplicitOrder方法中抛出IllegalStateException,导致类加载失败,进而无法创建右键弹出菜单。
解决方案
- 检查JMeter安装完整性
确认ApacheJMeter_core.jar文件未损坏,直接重新下载JMeter 5.6.3完整安装包,覆盖现有目录,避免文件缺失或损坏导致的类加载异常。 - 验证Java版本兼容性
JMeter 5.6.3兼容Java 8至Java 17版本,执行java -version检查当前Java版本,若版本不匹配,切换到兼容版本后重启JMeter。 - 清理JMeter配置缓存
删除JMeter配置目录下的cache文件夹:- Windows:
%APPDATA%\JMeter\cache - Linux/macOS:
~/.jmeter/cache
重启JMeter后系统会重新生成配置缓存。
- Windows:
- 排查插件冲突
若安装了第三方JMeter插件,尝试移除最近添加的插件,恢复到纯净版JMeter测试是否恢复正常,排除插件导致的类初始化冲突。
完整错误日志
2024-06-05 16:47:05,530 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[AWT-EventQueue-0,6,main] java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:109) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:184) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.tree.JMeterTreeListener.displayPopUp(JMeterTreeListener.java:246) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.tree.JMeterTreeListener.mousePressed(JMeterTreeListener.java:188) ~[ApacheJMeter_core.jar:5.6.3] at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:288) ~[?:?] at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287) ~[?:?] at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287) ~[?:?] at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287) ~[?:?] at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287) ~[?:?] at java.desktop/java.awt.Component.processMouseEvent(Component.java:6623) ~[?:?] at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) ~[?:?] at java.desktop/java.awt.Component.processEvent(Component.java:6391) ~[?:?] at java.desktop/java.awt.Container.processEvent(Container.java:2266) ~[?:?] at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) ~[?:?] at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) ~[?:?] at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) ~[?:?] at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) ~[?:?] at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4572) ~[?:?] at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) ~[?:?] at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) ~[?:?] at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) ~[?:?] at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) ~[?:?] at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?] at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) ~[?:?] at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) ~[?:?] at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?] at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?] at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) ~[?:?] at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746) ~[?:?] at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744) ~[?:?] at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?] at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?] at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743) ~[?:?] at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?] at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?] at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?] at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?] at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?] at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?] Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.IllegalStateException [in thread "AWT-EventQueue-0"] at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[?:?] at org.apache.jmeter.gui.util.MenuFactory.separateItemsWithExplicitOrder(MenuFactory.java:246) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.util.MenuFactory.<init>(MenuFactory.java:110) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:109) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:184) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:49) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:83) ~[ApacheJMeter_core.jar:5.6.3] at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:65) ~[ApacheJMeter_core.jar:5.6.3] at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?] at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) ~[?:?] at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) ~[?:?] at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) ~[?:?] at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?] at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?] at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) ~[?:?] at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?] at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?] at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) [?:?] at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) ~[?:?] at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) ~[?:?] at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) ~[?:?] at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) ~[?:?] at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) ~[?:?] at java.desktop/java.awt.Dialog.show(Dialog.java:1080) ~[?:?] at java.desktop/java.awt.Component.show(Component.java:1728) ~[?:?] at java.desktop/java.awt.Component.setVisible(Component.java:1675) ~[?:?] at java.desktop/java.awt.Window.setVisible(Window.java:1036) ~[?:?] at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016) ~[?:?] at org.apache.jmeter.SplashScreen.lambda$showScreen$0(SplashScreen.java:95) ~[ApacheJMeter_core.jar:5.6.3] at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?] at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) ~[?:?] at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) ~[?:?] at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) ~[?:?] at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?] at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?] at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) ~[?:?] ... 6 more
内容的提问来源于stack exchange,提问作者Automation Tester
相关产品推荐
相关产品推荐

