web-dev-qa-db-ja.com

Java DISPLAY変数の値として「localhost:10.0」を使用してX11ウィンドウサーバーに接続できません

Javaを使用して、localhostのポート10.0のディスプレイX11に接続するスクリプトがあります

しかし、私は常にこのエラーが発生します

Java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
    at Sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    at Sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.Java:62)
    at Sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.Java:178)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.Java:142)
    at Java.lang.Class.forName0(Native Method)
    at Java.lang.Class.forName(Class.Java:186)
    at Java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.Java:82)
    at Sun.awt.X11.XToolkit.<clinit>(XToolkit.Java:112)
    at Java.lang.Class.forName0(Native Method)
    at Java.lang.Class.forName(Class.Java:186)
    at Java.awt.Toolkit$2.run(Toolkit.Java:849)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.awt.Toolkit.getDefaultToolkit(Toolkit.Java:841)
    at ij.io.Opener.openJpegOrGif(Opener.Java:367)
    at ij.io.Opener.openImage(Opener.Java:220)
    at ij.io.Opener.openImage(Opener.Java:249)
    at ij.io.Opener.open(Opener.Java:116)
    at ij.IJ.open(IJ.Java:1112)
    at ij.macro.Functions.open(Functions.Java:2006)
    at ij.macro.Functions.doFunction(Functions.Java:129)
    at ij.macro.Interpreter.doStatement(Interpreter.Java:205)
    at ij.macro.Interpreter.doBlock(Interpreter.Java:515)
    at ij.macro.Interpreter.runUserFunction(Interpreter.Java:278)
    at ij.macro.Interpreter.getFactor(Interpreter.Java:1200)
    at ij.macro.Interpreter.getTerm(Interpreter.Java:1162)
    at ij.macro.Interpreter.getExpression(Interpreter.Java:1145)
    at ij.macro.Interpreter.getBooleanExpression(Interpreter.Java:881)
    at ij.macro.Interpreter.getLogicalExpression(Interpreter.Java:857)
    at ij.macro.Interpreter.getBoolean(Interpreter.Java:850)
    at ij.macro.Interpreter.doIf(Interpreter.Java:829)
    at ij.macro.Interpreter.doStatement(Interpreter.Java:217)
    at ij.macro.Interpreter.doBlock(Interpreter.Java:515)
    at ij.macro.Interpreter.doStatement(Interpreter.Java:241)
    at ij.macro.Interpreter.doIf(Interpreter.Java:831)
    at ij.macro.Interpreter.doStatement(Interpreter.Java:217)
    at ij.macro.Interpreter.doStatements(Interpreter.Java:195)
    at ij.macro.Interpreter.run(Interpreter.Java:99)
    at ij.macro.Interpreter.run(Interpreter.Java:65)
    at ij.macro.Interpreter.run(Interpreter.Java:75)
    at ij.plugin.Macro_Runner.runMacro(Macro_Runner.Java:127)
    at ij.plugin.Macro_Runner.runMacroFile(Macro_Runner.Java:112)
    at ij.IJ.runMacroFile(IJ.Java:103)
    at ij.ImageJ.main(ImageJ.Java:517)

私はこの問題を解決するためにすべてを試しました:

export DISPLAY=:10.0
export DISPLAY=localhost:10.0

ポート0.0も試しましたが、常に同じエラーが表示されます

xhostを試した後

xhost +local:all
xhost:  unable to open display ""
xhost:  unable to open display ":10.0"

どうすればこれを修正できますか?Xサーバーが実行されていないと思ったのでstartxを試してみました

私のシステムはUbuntuサーバーエディション10.04

80
ElTero

このコマンドは、問題の解決に役立ちました。

export DISPLAY=:0
32
Maryam Saeidi

起動時に -Djava.awt.headless=true パラメーターを指定する必要があります。

49
Michael-O

DISPLAY変数を削除する

unset DISPLAY

これは、ほとんどの場合(たとえば、アプリケーションサーバーまたはその他のJavaベースのツールの起動)に役立ち、多くのコマンドラインをすべて変更することを避けます。

専用のapp-server/toolsユーザーの.bash_profileに追加するのも快適です。

34
bebbo

あなたは須藤モードで作業していると思います。ユーザーモードにチェックアウトしてもう一度やり直してください

13
Harsh V Pillai

CI(jenkins、..)でmaven-surefire-pluginを介して自動化された単体テストを実行しようとして、上記のエラーが発生した場合は、必ずsurefireプラグイン構成を更新してください:

<plugin>
     <groupId>org.Apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>${maven-surefire-plugin.version}</version>
     <configuration>
            <systemPropertyVariables>
                <Java.awt.headless>true</Java.awt.headless>
            </systemPropertyVariables>
      </configuration>
</plugin>
9
Puneetsri

これで修正されます:

/usr/bin/Java -Djava.awt.headless=true $Your_program
6
grepit

ヘッドレスFedora 22を搭載したRaspberry Pi 2にGlassfishをインストールするという無益な努力の数日後、以下は問題なく動作しました

 unset DISPLAY
Java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar

here から助けを得た

4
N_E

最初:XQuartzを起動します

2番目:ssh -X user @ ip_address

...:プロセスを開始します

sshしてからXQuartzを起動すると、そのエラーが発生します

3
Aleks Tkachenko

私にとっては、-Xの代わりに-Yとしてログインしました。

以下に示すように信頼できないX11がある場合は、代わりに-Yフラグを試してください(ホストを信頼する場合):

警告:信頼できないX11転送セットアップに失敗しました:xauthキーデータは生成されません

3
loknath

解決しました。ログアウトしてxorgでログインするだけです!

2
Nilesh

私の場合、マシンにスペースが残っていなかったため、同じ問題に直面しました。場合によってはスペースの問題である可能性があります。 Linux/Unix環境のスペースを確認し、マシンに十分なスペースがあることを確認します。

1
user3016200

Michael-Oは、問題を解決するための有用なアプローチを提供しました。これを解決する別の方法は、PuTTYコンソールでサーバーを起動することです。

1
Koti Reddy

Xmingを使用していて、同様のエラーが発生しました。この問題を解決するために、次の手順が実行されました。

  1. Xmingの起動では、アクセス制御なしのボックスをチェックします。
  2. PuTTYで次のコマンドを実行しました:DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY

XXX.XXX.XXX.XXをIPアドレスに置き換えます。

1
Shashank

/ etc/profileで使用または設定されている場合は、まずJenkinsのビルドフェーズでこれを実行します。

unset DISPLAY
export DISPLAY=:0

次に、このプロパティをJavaコードまたはmavenを使用して設定します。-Djava.awt.headless = false

./studio.sh All setを実行する前に、rootからログアウトしませんでした。

0

動作させる唯一の方法は、テンプレートを使用してスクリプトを実行することでした。例えばsudo ./glassfish-3.1.2.2-unix.sh -sテンプレート

これにより、Glassfishがサイレントモードでインストールされます。 http://docs.Oracle.com/cd/E18930_01/html/821-2427/ghmva.html

0
janex

Hudsonでこのエラーが表示された場合、ホームディレクトリから.Javaディレクトリを削除してみてください。うまくいく可能性があります。

0
user2945593

別のユーザーに変更して、root以外を試してください。わたしにはできる。

0
Vinod Ranga

Jenkinsからコードをトリガーする場合、「ビルドの前にXvfbを開始し、その後シャットダウンする」オプションを有効にすると役立つ場合があります。助けてくれました。

0
Akshay Maldhure

Ubuntu 17.10の場合、X仮想フレームバッファー(xvfb)をインストールします

apt install xvfb

そして、これらの行を/ etc/profileファイルに追加しました...

# Start the X virtual frame buffer (Xvfb)
if [ -f /usr/X11R6/bin/Xvfb ]; then
/usr/X11R6/bin/Xvfb :1 -screen 0 1366x768x32
fi

# Set the DISPLAY variable for the X virtual frame buffer (Xvfb)
export DISPLAY=localhost:1.0
0
cwilliamsz

リモートでjconsoleコマンドを実行すると、同じエラーが発生します。リモートLinuxホストで実行されるjconsoleのパラメーターを変更したいのですが、secureCRTを使用してホストにログインできます。ターミナルはこのエラー情報をスローします。幸いなことに、PuTTYを使用する場合は問題ありません。奇妙な....

0
David

私の場合、このエラーはDISPLAYポートに関連していませんでした。 XMLをWindchill(PLMソフトウェア)にロードしようとして、ターミナルで上記のエラーのみを受信しました。ログファイルでXMLファイルが破損しているというレポートを見つけました。たぶん誰かが同様の問題を抱えており、この答えを使うことができます。

0
LMN

Sshでログインしているときにリモートサーバーでアプリケーションを起動する場合は、-xパラメーターを使用してsshを起動するか、ForwardX11 no/etc/ssh/ssh_configを追加します。この場合、sshは環境変数DISPLAYを作成しません。

0
user3132194