从Tomcat运行Swing应用程序;无法使用DISPLAY =:0:0连接到X11

时间:2012-04-09 16:44:01

标签: swing tomcat

我有一个小型Swing监控应用程序,我想在Tomcat 6 JVM中运行。通过从Tomcat下运行的Web服务动态加载监控类来启动应用程序。这适用于Windows但在Linux(Ubuntu 10.4)上我遇到了一些错误。

我的第一个错误是我收到了HeadlessException。我没有明确使用无头模式,在搜索之后我改变了Tomcat的库路径(通过catalina.sh中的-Djava.library.path)指向客户端lib(即... / java-6-sun-1.6 .0.26 / jre / lib / i386 / client)而不是服务器lib。我还在catalina.sh中设置了DISPLAY =:0:0。这摆脱了无头的例外,但现在我得到了:

java.lang.InternalError: Can't connect to X11 window server using ':0:0' as the value of the DISPLAY variable.
sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
sun.awt.X11GraphicsEnvironment.access$100(X11GraphicsEnvironment.java:52)
sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:155)
java.security.AccessController.doPrivileged(Native Method)
sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
java.awt.Window.init(Window.java:380)
java.awt.Window.<init>(Window.java:433)
java.awt.Frame.<init>(Frame.java:403)
java.awt.Frame.<init>(Frame.java:368)
javax.swing.JFrame.<init>(JFrame.java:158)
com.quinsoft.zeidon.objectbrowser.ObjectBrowser.startup(ObjectBrowser.java:60)

此时我被困住了。我尝试了很多不同的东西(比如显式设置“headless = false”并为DISPLAY使用不同的值)并且没有任何变化。有没有人有任何想法?

版本信息:

  • Tomcat 6.0.28
  • Java 1.6
  • Ubuntu 10.4

1 个答案:

答案 0 :(得分:0)

如果您还没有尝试过,请尝试设置'-Djava.awt.headless = true'。