首页 新闻 会员 周边

jmeter报错java.awt.HeadlessException: null

0
悬赏园豆:10 [待解决问题]

报错信息如下:

2023-06-06 12:24:07,969 ERROR o.a.j.JMeter: An error occurred: 
java.awt.HeadlessException: null
	at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204) ~[?:1.8.0_231]
	at java.awt.Window.<init>(Window.java:536) ~[?:1.8.0_231]
	at java.awt.Frame.<init>(Frame.java:420) ~[?:1.8.0_231]
	at java.awt.Frame.<init>(Frame.java:385) ~[?:1.8.0_231]
	at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1763) ~[?:1.8.0_231]
	at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1838) ~[?:1.8.0_231]
	at javax.swing.JDialog.<init>(JDialog.java:272) ~[?:1.8.0_231]
	at javax.swing.JDialog.<init>(JDialog.java:206) ~[?:1.8.0_231]
	at javax.swing.JDialog.<init>(JDialog.java:154) ~[?:1.8.0_231]
	at org.apache.jmeter.SplashScreen.<init>(SplashScreen.java:52) ~[ApacheJMeter_core.jar:5.5]
	at org.apache.jmeter.JMeterGuiLauncher.startGuiInternal(JMeterGuiLauncher.kt:87) ~[ApacheJMeter_core.jar:5.5]
	at org.apache.jmeter.JMeterGuiLauncher.access$startGuiInternal(JMeterGuiLauncher.kt:47) ~[ApacheJMeter_core.jar:5.5]
	at org.apache.jmeter.JMeterGuiLauncher$startGui$1$1.invokeSuspend(JMeterGuiLauncher.kt:67) ~[ApacheJMeter_core.jar:5.5]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-1.6.21.jar:1.6.21-release-334(1.6.21)]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) ~[kotlinx-coroutines-core-jvm-1.6.1.jar:?]
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) ~[?:1.8.0_231]
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) ~[?:1.8.0_231]
	at java.awt.EventQueue.access$500(EventQueue.java:97) ~[?:1.8.0_231]
	at java.awt.EventQueue$3.run(EventQueue.java:709) ~[?:1.8.0_231]
	at java.awt.EventQueue$3.run(EventQueue.java:703) ~[?:1.8.0_231]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_231]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) ~[?:1.8.0_231]
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) ~[?:1.8.0_231]
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) ~[?:1.8.0_231]
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) ~[?:1.8.0_231]
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) ~[?:1.8.0_231]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:1.8.0_231]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) ~[?:1.8.0_231]
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) ~[?:1.8.0_231]

ycyzharry的主页 ycyzharry | 高人七级 | 园豆:25653
提问于:2023-06-07 01:03
< >
分享
所有回答(3)
0

该错误通常是由于未正确设置JMeter的Java虚拟机(JVM)参数导致的。

要解决此错误,请在JMeter的jmeter.bat / jmeter.sh脚本中添加以下内容:
···
set JVM_ARGS="-Djava.awt.headless=true"
···
此外,您可以使用以下命令来启动JMeter:
···
jmeter -n -t test.jmx -l results.jtl -j jmeter.log -Jjmeter.save.saveservice.output_format=csv -Jjmeter.save.saveservice.assertion_results=all -Jjmeter.save.saveservice.response_data.on_error=true -Jjmeter.save.saveservice.samplerData=true -Jjmeter.save.saveservice.requestHeaders=true
···

Tom.汤 | 园豆:3028 (老鸟四级) | 2023-06-07 08:14
0

这个错误提示是由于 JMeter 在启动时尝试创建一个提供程序和设备无关的用户界面,但发现当前环境不支持此类型的界面,因此抛出了 HeadlessException 异常。

  1. 设置jmeter-server为非GUI模式:运行JMeter时,使用非GUI模式而不是默认的GUI模式。可以通过在命令行或脚本中使用以下参数来启用非GUI模式:jmeter -n -t <test_file.jmx>
  2. 禁用图形界面:如果要在GUI模式下运行JMeter,可以禁用图形界面来避免此问题。可以通过在 jmeter.properties 文件中将以下属性 jmeter.gui.action.on_quit 设置为 save,禁用退出时保存图形界面状态并强制关闭图形界面。然后,在运行 JMeter 之前,使用命令行参数 -Djava.awt.headless=true 来禁用图形界面。
  3. 检查当前系统配置:如果你无法禁用图形界面,并且仍然遇到此问题,则可以检查当前系统的 GUI 是否可用,或者是否缺少必需的包或库。
    4.确保您已经安装了 Java 运行时环境(JRE)或 Java 开发工具包(JDK),并且已将其添加到系统 PATH 环境变量中。
    5.确保您的 JMeter 版本与您的 Java 版本兼容。请查看 JMeter 官方文档以获取有关 JMeter 版本和 Java 版本兼容性的信息。
    6.如果您使用的是 Linux 或 macOS 系统,请确保您已安装 X11 服务器。
    7.如果您使用的是 Windows 系统,请确保您已安装正确的 Microsoft Visual C++ 运行时库。
lanedm | 园豆:2381 (老鸟四级) | 2023-06-07 08:42
0

这个错误提示是由于在缺少图形界面的环境中运行了需要图形界面的代码所导致的。

JMeter是一个Java编写的性能测试工具,通常在图形界面中使用。然而,有时候在没有图形界面的环境中运行JMeter时,就会遇到java.awt.HeadlessException错误。

为了解决这个问题,你可以采取以下措施之一:

配置无头模式(Headless Mode):将JMeter配置为无头模式,以在没有图形界面的环境中运行。你可以通过在JMeter启动脚本中添加以下参数来实现无头模式:

arduino
Copy code
-Djava.awt.headless=true
在命令行中运行JMeter时,将该参数添加到启动命令中。例如:

arduino
Copy code
java -Djava.awt.headless=true -jar ApacheJMeter.jar
使用非 GUI 模式:如果你只是想运行性能测试而不需要图形界面,则可以使用 JMeter 的非 GUI 模式运行测试。在非 GUI 模式下,不需要图形界面,因此可以避免java.awt.HeadlessException错误。

使用以下命令来运行 JMeter 的非 GUI 模式:

Copy code
jmeter -n -t your_test_plan.jmx -l your_results.jtl
其中,your_test_plan.jmx 是你的测试计划文件,your_results.jtl 是结果输出文件。

通过采取上述措施之一,你应该能够在没有图形界面的环境中成功运行 JMeter,避免java.awt.HeadlessException错误的出现。

Technologyforgood | 园豆:5718 (大侠五级) | 2023-06-07 22:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册