Saya memiliki skrip menggunakan java untuk menyambung ke tampilan X11 di port 10.0 di localhost
tetapi saya selalu mendapatkan kesalahan ini
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)
Saya telah mencoba segalanya untuk menyelesaikan masalah ini seperti:
export DISPLAY=:10.0
export DISPLAY=localhost:10.0
Saya juga mencoba port 0.0 tetapi saya selalu mendapatkan kesalahan yang sama
setelah mencoba xhost
xhost +local:all
xhost: unable to open display ""
xhost: unable to open display ":10.0"
bagaimana saya bisa memperbaikinya saya pikir bahwa X Server tidak berjalan jadi saya mencoba startx
katanya berjalan di port itu
sistem saya adalah edisi server Ubuntu 10.04
unset DISPLAY
membantu saya (denganexport DISPLAY=:0
saya mendapat kesalahanCan't connect to X11 window server using ':0'
Anda perlu menentukan
-Djava.awt.headless=true
parameter pada waktu startup.sumber
ij.io.Opener.openJpegOrGif
, kami dapat menebak bahwa mungkin membutuhkan GUI. Jadi tanpa kepala akan menghasilkan kesalahan lain:java.awt.HeadlessException
.Hapus variabel DISPLAY
Ini membantu dalam banyak kasus (misalnya memulai server aplikasi atau alat berbasis java lainnya) dan menghindari untuk mengubah banyak baris perintah.
Mungkin juga nyaman untuk menambahkannya ke .bash_profile untuk pengguna server aplikasi / alat khusus.
sumber
Saya pikir Anda bekerja dalam mode sudo. Harap keluar ke mode pengguna dan coba lagi
sumber
Jika ada yang mencoba menjalankan pengujian unit otomatis melalui maven-surefire-plugin di CI (jenkins, ..), dan mendapatkan kesalahan yang disebutkan di atas, pastikan untuk memperbarui konfigurasi plugin yang pasti Anda:
<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>
sumber
Ini akan memperbaikinya:
/usr/bin/java -Djava.awt.headless=true $Your_program
sumber
Bagi saya masuk sebagai -Y, bukan -X bekerja.
Jika Anda memiliki X11 yang tidak tepercaya seperti yang ditunjukkan di bawah ini, cobalah -Y flag sebagai gantinya (jika Anda mempercayai host):
Peringatan : penyiapan penerusan X11 yang tidak tepercaya gagal: data kunci xauth tidak dibuat
sumber
Setelah beberapa hari upaya sia-sia memasang ikan gelas pada raspberry pi 2 dengan fedora tanpa kepala 22, Di bawah ini berhasil untuk saya tanpa hambatan
unset DISPLAY java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar
mendapat bantuan saya dari sini
sumber
Pertama: mulai XQuartz
Kedua: ssh -X user @ ip_address
...: mulai proses Anda
jika Anda ssh dan kemudian memulai XQuartz Anda akan mendapatkan kesalahan itu
sumber
Ini memperbaiki masalah saya
tetapi Sadarilah bahwa
xhost +
sepenuhnya menonaktifkan otentikasi dan memungkinkan semua orang untuk mengakses semua aplikasi di layar Anda.xhost +si:localuser:root
tampaknya berfungsi serupa dengan otentikasi yang benar.sumber
Pertama-tama lakukan ini di Fase Build Jenkins jika menggunakan atau disetel di / etc / profile:
unset DISPLAY export DISPLAY=:0
kemudian setel properti ini dalam kode java atau menggunakan maven: -Djava.awt.headless = false
sumber
Saya menggunakan Xming dan mendapatkan kesalahan serupa. Langkah-langkah berikut diambil untuk memperbaiki masalah:
DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY
Ganti
XXX.XXX.XXX.XX
dengan alamat IP Anda.sumber
Terpecahkan. Saya baru saja keluar dan masuk dengan xorg!
sumber
Jika Anda mencoba mengekspor tampilan menggunakan su dan masih tidak berhasil. Inilah yang berhasil bagi saya. Coba penerusan X11 untuk pengguna sudo.
Hubungkan host jarak jauh menggunakan opsi -X dengan ssh.
# ssh -X root@remote-host
Sekarang daftar set coockie untuk pengguna saat ini.
# xauth list $DISPLAY node01.thegeekdiary.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa # echo $DSIPLAY localhost:10.0
Beralih ke akun pengguna lain menggunakan sudo. Tambahkan cookie dari output perintah di atas ke pengguna sudo.
# sudo su - [user] # xauth add node01.thegeekdiary.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa
Ekspor tampilan dari langkah 2 lagi untuk pengguna sudo. Coba perintah xclock untuk memverifikasi apakah aplikasi klien x berfungsi seperti yang diharapkan.
# export DISPLAY=localhost:10.0
sumber: https://www.thegeekdiary.com/how-to-set-x11-forwarding-export-remote-display-for-users-who-switch-accounts-using-sudo/
sumber
Jika Anda melihat kesalahan ini di Hudson, coba hapus direktori .java dari direktori home Anda, ini mungkin berhasil untuk Anda.
sumber
Michael-O memberikan pendekatan yang berguna untuk memecahkan masalah tersebut. Cara lain untuk mengatasinya adalah dengan memulai server dengan Putty Console.
sumber
Dalam kasus saya, tidak ada ruang tersisa di mesin saya dan saya menghadapi masalah yang sama. Terkadang bisa jadi masalah ruang angkasa. Periksa ruang di lingkungan Linux / Unix Anda dan pastikan mesin Anda memiliki cukup ruang.
sumber
periksa apakah variabel $ DISPLAY diset atau tidak, dengan perintah di bawah ini:
echo $ DISPLAY
jika variabel tampilan tidak disetel, jalankan perintah di bawah ini untuk menyetel, (bahkan jika disetel, Anda dapat memiliki di bawah ini untuk sesi Anda)
ekspor DISPLAY =: 0.0
dalam dempul juga memiliki lokasi tampilan x sebagai: 0,0
sumber
Saya memiliki masalah yang sama di server Linux yang saya kerjakan. Menghubungkan java ke layar X11 berfungsi pada node kepala, tetapi tidak pada yang lain. Setelah menghubungi administrator, ternyata versi sistem penjadwalan pekerjaan (SLURM) kami saat ini tidak mendukung penerusan X11. Mereka harus memperbarui SLURM (versi SLURM yang lebih baru mendukungnya) agar dapat berfungsi.
sumber
satu-satunya cara saya membuatnya berfungsi adalah menjalankan skrip dengan template. misalnya sudo ./glassfish-3.1.2.2-unix.sh -s template
Ini menginstal Glassfish dalam Mode Senyap. http://docs.oracle.com/cd/E18930_01/html/821-2427/ghmva.html
sumber
Saya mengalami kesalahan yang sama dengan Anda ketika saya menjalankan perintah jconsole dari jarak jauh. Saya ingin mengubah parameter di jconsole yang berjalan pada host Linux jarak jauh, saya dapat masuk ke host menggunakan secureCRT, terminal membuang informasi kesalahan ini. Untungnya, saat menggunakan Putty, tidak apa-apa. Aneh....
sumber
Jika Anda memulai aplikasi di server jauh sementara login dengan ssh maka cara lain adalah dengan memulai ssh dengan
-x
parameter atau addForwardX11 no
di Anda/etc/ssh/ssh_config
. Dalam hal ini ssh tidak akan membuat variabel lingkungan DISPLAY.sumber
Bagi saya, masalahnya adalah xorg-x11-xauth tidak diinstal. Saya menginstalnya dan kemudian berhasil.
Paket yang saya miliki sekarang adalah:
sumber
Jika Anda memicu kode dari Jenkins, mengaktifkan opsi "Mulai Xvfb sebelum build, dan matikan setelahnya" dapat membantu. Itu membantu saya.
sumber
ubah ke pengguna lain dan coba kecuali root. itu berhasil untuk saya.
sumber
Saya hanya tidak keluar dari root sebelum menjalankan ./studio.sh All set.
sumber
Untuk Ubuntu 17.10 Instal X virtual frame buffer (xvfb)
Dan menambahkan baris ini ke file / 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
sumber
Dalam kasus saya, kesalahan ini tidak terkait dengan port DISPLAY. Saya mencoba memuat XML ke Windchill (perangkat lunak PLM) dan hanya menerima kesalahan di atas pada terminal. Dalam logfile saya menemukan laporan bahwa file XML saya rusak . Mungkin seseorang memiliki masalah serupa dan dapat menggunakan jawaban ini.
sumber
Masalah saya adalah dengan firewall. Nonaktifkan sementara.
[EDIT] Dan, nama host server mengarah ke IP lain. Setel ke server lokal saja.
strace xclock
membantu men-debug masalah ini.sumber
Saya telah memperbaiki masalah ini dengan masuk menggunakan Xorg. Secara default, saya telah menggunakan Wayland. Sepertinya Wayland menghilangkan sebagian besar kekurangan desain Xorg yang memiliki masalahnya sendiri.
sumber