私はTomcat 6 JVMで実行したい小さなSwing監視アプリケーションを持っています。このアプリケーションは、Tomcatの下で実行されているWebサービスから監視クラスを動的にロードすることによって開始されます。これはWindowsでは動作しますが、Linux(Ubuntu 10.4)ではいくつかのエラーが発生しています。TomcatからSwingアプリケーションを実行します。 DISPLAY =:0:0でX11に接続できません
私の最初のエラーは、私がHeadlessExceptionを取得していたことでした。私は明示的にヘッドレスモードを使用していないし、検索した後、Tomcatのライブラリパスをcatalina.shの-Djava.library.pathを使ってクライアントlib(つまり.../java-6-sun-1.6)に変更した.0.26/jre/lib/i386/client)を使用してください。また、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
フォローアップとして、私はTomcatユーザーの電子メールリストにこの実行中のサービスを提供することができました。何らかの理由で私は(まだ)Tomcatをサービスとして実行していると理解していないので、Xサーバに接続できません。私がstartup.shを使ってTomcatを直接実行すると、Swingアプリは問題なく起動します。私がもっと学ぶなら、私は更新します。 – DeegC