Linuxマシン(Slackware)にJavaアプリケーションをインストールしようとしています。
次のエラーを受け取りましたが、理解できません。
問題へのアプローチ方法を教えてください。ありがとうございました。
ここに私が得るものがあります:(いくつかのX11 DISPLAY変数を設定する必要があることがわかりますが、どの値をどのように与えるべきですか?)
~$ Java -jar gate-5.0-beta1-build3048-installer.jar
- ERROR -
Java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
Java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at Java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.Java:159)
at Java.awt.Window.<init>(Window.Java:407)
at Java.awt.Frame.<init>(Frame.Java:402)
at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.Java:105)
at net.sourceforge.mlf.metouia.borders.MetouiaDots.<i nit>(MetouiaDots.Java:66)
at net.sourceforge.mlf.metouia.borders.MetouiaToolBar Border.<init>(MetouiaToolBarBorder.Java:49)
at net.sourceforge.mlf.metouia.MetouiaLookAndFeel.ini tComponentDefaults(MetouiaLookAndFeel.Java:241)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefault s(BasicLookAndFeel.Java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefault s(MetalLookAndFeel.Java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:581)
at com.izforge.izpack.installer.GUIInstaller.loadLook AndFeel(GUIInstaller.Java:373)
at com.izforge.izpack.installer.GUIInstaller.<init>(G UIInstaller.Java:116)
at Sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.Java:39)
at Sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.Java:27)
at Java.lang.reflect.Constructor.newInstance(Construc tor.Java:513)
at Java.lang.Class.newInstance0(Class.Java:355)
at Java.lang.Class.newInstance(Class.Java:30
at com.izforge.izpack.installer.Installer.main(Instal ler.Java:62)
メインディスプレイを使用している場合、
export DISPLAY=:0.0
または、cshまたはtcshを使用している場合
setenv DISPLAY :0.0
アプリを実行する前に。
実際、自動的に設定されないことに驚いています。このアプリケーションを非グラフィック端末から起動しようとしていますか?そうでない場合は、デフォルトの.profile、.login、.bashrc、または.cshrcを変更しましたか?
DISPLAYを:0.0に設定することは、私が言ったようにメインディスプレイに座っていること、または少なくともメインディスプレイがユーザーIDにログオンしていることを前提としています。ログオンしていない場合、または別のユーザーIDである場合、これは失敗します。
別のマシンから来て、そのマシンのメインディスプレイにいて、Xを実行している場合、「ssh -X hostname」を使用してそのホストに接続すると、sshはXディスプレイを送り返します。 sshは、DISPLAY環境変数が正しく設定されていることも確認します(上記のさまざまなドットファイルで混乱しないようにします)。 「ssh -X」セッションでは、DISPLAY環境変数の値は「localhost:11.0」のようになります。これは、sshがローカルボックスにトンネリングしているソケットを指します。
これをX11環境内から実行していますか?ターミナルウィンドウを使用できますが、X内になければなりません(グラフィカルログイン後、またはstartxを実行して)。
すでにグラフィカル環境内にいる場合は、シェル(bash、shなど)のようなbashの場合はDISPLAY =:0を、Cシェルベースのシェル(csh、tcshなどの場合)の場合はsetenv DISPLAY:0をエクスポートしてください。
SSHを介して別のマシンから接続している場合は、-Xオプションを使用して、座っているマシンのグラフィカルインターフェイスを表示します(Xサーバーが実行されている場合(Windowsのxming、標準のLinux Xなど)サーバ)。
説明と同様の場合に問題になる可能性のあるもう1つのこと-「xauth」プログラムがリモート側にインストールされていない場合、Xは転送されず、$ DISPLAYは設定されません。 「ssh -Xv ip_address」を実行すると検索され、見つからない場合は失敗します。これは、冗長モードをオンにしない限り表示されません(失敗したIMO)。通常、同じ名前のパッケージで「xauth」を見つけることができます。
非常に簡単で、この同じ問題が発生した場合、表示に役立つアプリをダウンロードしてインストールし、エラーを修正しました。
このアプリをダウンロードxming:
http://sourceforge.net/project/downloading.php ?
インストールしてから、このリンクの設定を使用します。
http://www.geo.mtu.edu/geoschem/docs/PuTTY_install.html またはこの手順に従ってください:
PuTTYとXmingのインストール/設定
PuTTYとXmingがPCにダウンロードされたら、それぞれの指示に従ってインストールします。
Xmingの構成
Xmingがインストールされたら、「XLaunch」というアプリケーションを実行し、設定が次のようになっていることを確認します。
PuTTYの設定
PuTTYをインストールしたら、デスクトップ上のPuTTYアイコンをダブルクリックし、次のように構成します。
これは、ログインプロファイルを作成して保存することを示しています。
プロファイルを保存してから、サーバーにリモート接続してテストします。
乾杯!!!
LinuxからWindowsで動作するX Windowアプリケーションを取得しようとしている場合:
私のために働いたのは、Windowsマシンにxmingサーバーをセットアップし、Linuxホストに接続するときにPuTTYでX11転送オプションを設定し、Windows IPアドレスにディスプレイポートを入れてから、ディスプレイ変数にWindows IPアドレス:0.0を入れることでした
LinuxホストのIPアドレスをX0.hostsファイルに追加して、xmingサーバーがそのホストからのトラフィックを受け入れるようにすることを忘れないでください。それを理解するためにしばらくかかりました。
これを行うには多くの方法があります。私は都合の良い以下のことをして、いつもうまくいきました。
サーバー上で、.Xauthorityファイルが生成され、DISPLAY変数が既に設定されていることがわかります。
$ xauthリスト
$ xauth add
テストするには、xclockまたはxeyesと入力します
注:ユーザーを切り替えるには、.Xauthorityファイルをそれぞれのユーザーのホームディレクトリにコピーし、そのユーザーからDISPLAY変数をエクスポートします。
Byobuターミナル内でスクリプトを起動した場合、JDK 8とNetbeansをインストールしようとしたときに、Ubuntu 14.04.01で同じ問題が発生しました(スクリーンでも同じことが起こります)。
Byobuを終了し、(グラフィカルターミナルで)スクリプトを実行するだけです。
初期チェック。
1)DISPLAYを他のマシンにエクスポートするときは、そのマシンでxhost +
コマンドを入力したことを確認してください。このコマンドは、他のマシンがこのマシンのDISPLAYをエクスポートできるようにします。セキュリティ上の制約があるかもしれませんが、それについて知っておいてください。 ssh -X MachineIP
を確認する必要があるのはxhost +
を必要としませんか?
2)場合によっては、JCONSOLE
がすべてのプロセスを表示しないことがあります。これらのJVMプロセスは別のユーザーで実行される可能性があり、別のユーザーでDISPLAYをエクスポートしているためです。 CD_DIR>Sudo ./jconsole
をフォローする方が良い
3)WAS(WEBSPHERE); jconsoleは、そのJavaサーバープロセスに接続できません。その時間は、リンクまでたどり、接続を試みてください。これは私のために働いた。このページは、jconsoleがそのサーバーに接続できるようにいくつかの変数を初期化しています。
WASコンソール>アプリケーションサーバー> server1>プロセス定義> Java仮想マシン
AIX(コマンドラインインターフェイスのみが利用可能で、DISPLAY UIはありません)マシンでも同じ問題に直面しました。インストールして解決しました
NXクライアントfor Windows
ステップ1:そのWindowsマシンを介して、GUIコンソールが使用可能なUNIXボックスに接続しました。
ステップ2:そのUNIXボックスからAIXボックスへのSSH。
ステップ3:DISPLAYを「export DISPLAY = UNIXMACHINE:NXClientPORTConnectedMentionedOnTitle」のように設定します
ステップ4:ここで、DISPLAYを必要とするプログラムを起動した場合。このUNIXボックスで起動されます。
VNC
ディスプレイが利用可能なUNIXボックスにVNCをインストールした場合; WindowsおよびNXクライアントは必要ありません。ステップ1:VNCを使用して、GUIコンソールが利用可能なUnixボックスに接続します。
ステップ2:そのUNIXボックスからAIXボックスへのSSH。
ステップ3:DISPLAYを「export DISPLAY = UNIXMACHINE:VNCPORT」のように設定します
ステップ4:ここで、DISPLAYを必要とするプログラムを起動した場合。このUNIXボックスで起動されます。
ELSE
ステップ1:UNIXボックスからAIXボックスへのSSH。
ステップ2:DISPLAYを「export DISPLAY = UNIXMACHINE:VNCPORT」のように設定します
ステップ3:DISPLAYを必要とするプログラムを起動した場合このUNIXボックスで起動されます。