1

Tomcat 6 JVM で実行したい小さな Swing 監視アプリがあります。アプリは、Tomcat で実行されている Web サービスから監視クラスを動的に読み込むことによって開始されます。これは Windows では機能しますが、Linux (Ubuntu 10.4) ではエラーが発生します。

私の最初のエラーは、HeadlessException が発生したことでした。私は明示的にヘッドレス モードを使用していません。検索した後、Tomcat のライブラリ パスを (catalina.sh の -Djava.library.path を介して) クライアント ライブラリを指すように変更しました (つまり .../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に異なる値を使用したりするなど)、何も変わりません。誰にもアイデアはありますか?

バージョン情報:

  • トムキャット 6.0.28
  • Java 1.6
  • Ubuntu 10.4
4

1 に答える 1

0

まだ試していない場合は、「-Djava.awt.headless=true」を設定してみてください。

于 2012-04-10T06:41:33.883 に答える