繁体   English   中英

Java应用程序和x11转发

[英]java application and x11 forwarding

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

user@client-32:~/sandbox/jperf-2.0.2$ sh jperf.sh
    Exception in thread "main" java.lang.ExceptionInInitializerError
    Caused by: java.awt.HeadlessException
            at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:77)
            at net.nlanr.jperf.JPerf.(Unknown Source)

Java版本:

java version "1.7.0_03"
    OpenJDK Runtime Environment (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu3)
    OpenJDK Client VM (build 22.0-b10, mixed mode, sharing)

uname -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

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

如果仍然无法使用,请尝试使用oracle jvm而不是openjdk one。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM