web-dev-qa-db-ja.com

SolarisでクラスSun.awt.X11GraphicsEnvironmentを初期化できませんでした

Solarisマシンでインストーラーを実行しているときにこのエラーが発生します。

Installing...
-------------

 [==================|==================|==================|==================]
 [---Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)

Stack Trace:
Java.lang.NoClassDefFoundError: Could not initialize class Sun.awt.X11GraphicsEnvironment
        at Java.lang.Class.forName0(Native Method)
        at Java.lang.Class.forName(Class.Java:186)
        at Java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.Java:102)
        at Java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.Java:81)
        at Sun.awt.X11FontManager.isHeadless(X11FontManager.Java:487)
        at Sun.awt.X11FontManager.getFontPath(X11FontManager.Java:767)
        at Sun.font.SunFontManager.getPlatformFontPath(SunFontManager.Java:3288)
        at Sun.font.SunFontManager$11.run(SunFontManager.Java:3314)
        at Java.security.AccessController.doPrivileged(Native Method)
        at Sun.font.SunFontManager.loadFonts(SunFontManager.Java:3310)
        at Sun.awt.X11FontManager.loadFonts(X11FontManager.Java:439)
        at Sun.font.SunFontManager.findFont2D(SunFontManager.Java:2347)
        at Sun.font.SunFontManager.findFont2D(SunFontManager.Java:2285)
        at Java.awt.Font.getFont2D(Font.Java:498)
        at Java.awt.Font.getFamily(Font.Java:1187)
        at Java.awt.Font.getFamily_NoClientCode(Font.Java:1161)
        at Java.awt.Font.getFamily(Font.Java:1153)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at com.zerog.ia.installer.actions.InstallUninstaller.a(DashoA10*..)
        at com.zerog.ia.installer.actions.InstallUninstaller.d(DashoA10*..)
        at com.zerog.ia.installer.actions.InstallUninstaller.installSelf(DashoA10*..)
        at com.zerog.ia.installer.InstallablePiece.install(DashoA10*..)
        at com.zerog.ia.installer.actions.InstallDirectory.install(DashoA10*..)
        at com.zerog.ia.installer.actions.InstallDirectory.install(DashoA10*..)
        at com.zerog.ia.installer.InstallablePiece.install(DashoA10*..)
        at com.zerog.ia.installer.GhostDirectory.install(DashoA10*..)
        at com.zerog.ia.installer.InstallablePiece.install(DashoA10*..)
        at com.zerog.ia.installer.Installer.install(DashoA10*..)
        at com.zerog.ia.installer.LifeCycleManager.b(DashoA10*..)
        at com.zerog.ia.installer.LifeCycleManager.a(DashoA10*..)
        at com.zerog.ia.installer.Main.main(DashoA10*..)
        at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
        at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
        at Java.lang.reflect.Method.invoke(Method.Java:601)
        at com.zerog.lax.LAX.launch(DashoA10*..)
        at com.zerog.lax.LAX.main(DashoA10*..)

Java_OPTS-Djava.awt.headless=trueを設定しようとしましたが、機能しません!

問題に対する他の解決策はありますか?

18
Deka

サーブレットのコンストラクターでこのコードを実行してみてください

System.setProperty("Java.awt.headless", "true"); 

または

サーバーの起動スクリプトでこのパラメーターを使用します。

-Djava.awt.headless=true

自動サイズの列を含むシートを作成するときに Apache POI で説明および説明されているこの問題の例を次に示します。

16
Edgard Leal

実際、

-Djava.awt.headless=true

問題をfixしません。回避します。問題は、実行しようとしているアプリケーションがXWindowsのUIで実行したいことです。このエラーは、Java 'dll not found'または '.so not found'と同等です。実際にこれを行うために必要なライブラリは、使用しているJVMクラスパスには存在しません。

問題は、OpenJDK(または他のバージョンのJava Jikesのような)を使用しており、awtがJavaライセンス上の理由からオープンソース化されているため、このクラスは意図的に存在せず、OpenJDKには存在しません。

宣言することにより

-Djava.awt.headless=true

コマンドラインモードで実行しているため、すべてのアプリがこれを実行できるわけではありません。あなたの場合、あなたはで逃げました。 実際に修正この問題を解決する唯一の方法は、そのクラスとクラスパス内のすべての依存クラスを取得することです。これを行う最も簡単な方法は、Sun JREに切り替えることです。

13

問題を解決しました。私のプロファイルであり、DISPLAYを1つのホストに設定しましたが、ホストは生きていません。私はそれを正しく設定し、機能しました。

$ export DISPLAY=

または

$ unset DISPLAY

12
Deka

ホスト名を変更していないことを確認し、その後この問題が発生した場合は、ホスト名に問題があります。

1
raviteja katari
Usually, the program starts to activate the headless mode, telling the program, now you have to work in Headless mode, don't expect the hardware to help, you have to be self-reliant, relying on the computing power of the system to simulate these features: 
System.setProperty("Java.awt.headless","true");

Edit the ${Tomcat_HOME}/bin/catalina.sh or ${Tomcat_HOME}/bin/catalina.bat file:

In all similar code below: 
"$_RUNJAVA" $Java_OPTS $CATALINA_OPTS \ 
-Djava.endorsed.dirs="$Java_ENDORSED_DIRS" -classpath "$CLASSPATH" \ 
-Djava.security.manager \ 
-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ 
-Dcatalina.base="$CATALINA_BASE" \ 
-Dcatalina.home="$CATALINA_HOME" \ 
-Djava.io.tmpdir="$CATALINA_TMPDIR" \

Add a sentence at the end: 
-Djava.awt.headless=true \

The revised content is as follows: 
Exec "$_RUNJAVA" $Java_OPTS $CATALINA_OPTS \ 
-Djava.endorsed.dirs="$Java_ENDORSED_DIRS" -classpath "$CLASSPATH" \ 
-Dcatalina.base="$CATALINA_BASE" \ 
-Dcatalina.home="$CATALINA_HOME" \ 
-Djava.io.tmpdir="$CATALINA_TMPDIR" \ 
-Djava.awt.headless=true \

Directly search for the line -Djava.io.tmpdir="$CATALINA_TMPDIR" and add it under this line: 

-Djava.awt.headless=true \

There are a total of seven places, which can be solved after the restart. 
0
user2737538

Linuxサーバーでも同じ問題が発生しました。魔法がどうなったのかわかりませんが、LinuxボックスにXorgをインストールすることで問題は完全に修正されました。

Sudo apt-get install xorg openbox
0