为什么我无法点击 Jmeter 中的打开图标?

pre*_*jna 8 java jvm jmeter

以下是我在单击打开图标时得到的错误:

2021-05-20 12:11:25,651 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[AWT-EventQueue-0,6,main]
java.lang.IllegalAccessError: class com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge$DetailsTableModel (in unnamed module @0x21507a04) cannot access class sun.awt.shell.ShellFolder (in module java.desktop) because module java.desktop does not export sun.awt.shell to unnamed module @0x21507a04
    at com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge$DetailsTableModel.updateColumnInfo(DarkFilePaneUIBridge.java:1128) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge$DetailsTableModel.<init>(DarkFilePaneUIBridge.java:1115) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge.getDetailsTableModel(DarkFilePaneUIBridge.java:576) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge$SortableListModel.<init>(DarkFilePaneUIBridge.java:1079) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFilePane.createList(DarkFilePane.java:137) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFileChooserUIBridge.createList(DarkFileChooserUIBridge.java:585) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFileChooserUIBridge$MetalFileChooserUIAccessor.createList(DarkFileChooserUIBridge.java:750) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge.setViewType(DarkFilePaneUIBridge.java:376) ~[darklaf-core-2.5.4.jar:2.5.4]
    at com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge.propertyChange(DarkFilePaneUIBridge.java:890) ~[darklaf-core-2.5.4.jar:2.5.4]
    at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:342) ~[?:?]
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:334) ~[?:?]
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:267) ~[?:?]
    at java.awt.Component.firePropertyChange(Component.java:8713) ~[?:?]
    at javax.swing.JComponent.setUI(JComponent.java:688) ~[?:?]
    at javax.swing.JFileChooser.updateUI(JFileChooser.java:1838) ~[?:?]
    at javax.swing.JFileChooser.setup(JFileChooser.java:395) ~[?:?]
    at javax.swing.JFileChooser.<init>(JFileChooser.java:361) ~[?:?]
    at javax.swing.JFileChooser.<init>(JFileChooser.java:308) ~[?:?]
    at org.apache.jmeter.gui.util.FileDialoger.<clinit>(FileDialoger.java:42) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.Load.doActionAfterCheck(Load.java:75) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.AbstractActionWithNoRunningTest.doAction(AbstractActionWithNoRunningTest.java:44) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:87) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:69) ~[ApacheJMeter_core.jar:5.4.1]
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316) ~[?:?]
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) ~[?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
    at java.security.AccessController.doPrivileged(AccessController.java:391) ~[?:?]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:740) ~[?:?]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
Run Code Online (Sandbox Code Playgroud)

小智 61

考虑将 JMeter 主题更改为 Windows Classic(选项 -> 外观 -> Windows 经典)

  • MacOS Monterey 上的“系统”对我有用。 (5认同)

小智 32

解决办法就是改变主题!

请尝试以下操作:

Open JMeter -> Options -> Look and Feel -> Select System theme.
Restart JMeter.
Run Code Online (Sandbox Code Playgroud)

  • 在 macOS Big sur 上工作! (2认同)

Chr*_*ann 6

我遇到了同样的问题,找到了这个解决方法,但这对我不起作用:

将以下内容添加到JAVA9_OPTSjmeter.bat 中的变量中:--add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED

来源:https ://bz.apache.org/bugzilla/show_bug.cgi?id=65300#c3

相反,使用今天的 JMeter 5.5 快照对我来说很有效:https ://ci-builds.apache.org/job/JMeter/job/JMeter-trunk/lastSuccessfulBuild/artifact/src/dist/build/distributions/


小智 6

这可能与JMeter的深色模式有关。至少对我来说,这通过将其更改为非黑暗主题解决了这个问题。系统信息:操作系统 - macOS Big Sur Jmeter 版本 - 5.4.1 Java 版本 - 16 参考


小智 5

我在 Mac 上也遇到了同样的问题,我将主题更改为 Nimbus 并修复了该问题。

\n

我按照 @\xd0\x94\xd0\xbc\xd0\xb8\xd1\x82\xd1\x80\xd0\xb8\xd0\xb9 \xd0\x9f\xd0\xbe\xd0\xbf\xd0\xbe 的步骤进行操作前面提到过\xd0\xb2。(选项 -> 外观和感觉 -> Nimbus)

\n


Dmi*_*i T 3

听起来你正面临JDK bug 482318,尝试将你的 Java 更改为另一个版本,即

  • 升级到Java 11(LTS 版本)
  • 降级到Java 8(这是能够运行 JMeter 5.4.1 的最低版本)

您还可以尝试通过运行 JMeter 来切换到跨平台外观:

jmeter -Jjmeter.laf=CrossPlatform ....
Run Code Online (Sandbox Code Playgroud)

如果有帮助,您可以通过将下一行添加到user.properties文件来使更改永久化:

jmeter.laf=CrossPlatform
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的一点是,您可以通过-t以下参数提供它以 GUI 模式打开 .jmx 脚本:

jmeter -t /path/to/your/test.jmx
Run Code Online (Sandbox Code Playgroud)

这样 JMeter 将启动并打开您的测试计划(希望如此)

更多信息:

  • 不幸的是,设置 `jmeter.laf=CrossPlatform` 对我不起作用。还有其他想法吗?谢谢 (3认同)