1

我需要在虚拟服务器上启动 jperf。我通过 ssh 配置了 X11 转发。xclock - 正在工作。但是如果我启动 jperf 我会得到:

    user@client-32:~/sandbox/jperf-2.0.2$ sh jperf.sh
    线程“主”java.lang.ExceptionInInitializerError 中的异常
    引起:java.awt.HeadlessException
            在 sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:77)
            在 net.nlanr.jperf.JPerf.(未知来源)

爪哇版:

    java版本“1.7.0_03”
    OpenJDK 运行环境 (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu3)
    OpenJDK Client VM(build 22.0-b10,混合模式,共享)

unname -a :

`Linux client-32 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux

问题解决

了需要添加-Djava.awt.headless=true到jperf.sh应该是这样的:

#!/bin/sh

java -classpath jperf.jar:lib/forms-1.1.0.jar:lib/jcommon-1.0.10.jar:lib/jfreechart-1.0.6.jar:lib/swingx-0.9.6.jar net.nlanr.jperf.JPerf -Djava.awt.headless=true
4

1 回答 1

0

您应该在无头模式下运行 jperf,因为您可能需要编辑 jperf.sh,请参阅:http: //javatechniques.com/blog/linux-x11-libraries-for-headless-mode/

如果它仍然不起作用,请尝试使用 oracle jvm 而不是 openjdk 之一。

于 2012-09-11T09:42:06.353 回答