Reputation: 3081
I have a script using java to connect to display X11 in the port 10.0 at localhost
but i get always this error
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)
I have tried everything to solve this problem like :
export DISPLAY=:10.0
export DISPLAY=localhost:10.0
I tried also the port 0.0 but i get always the same error
after trying xhost
xhost +local:all
xhost: unable to open display ""
xhost: unable to open display ":10.0"
how can i fix this
i thought that the X Server is not runing so i tried startx
its says its runing at that port
my system is Ubuntu server edition 10.04
Upvotes: 130
Views: 487014
Reputation: 1794
For lucee on linux follow these steps:
create or edit file: /opt/lucee/tomcat/bin/setenv.sh
paste: JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
save & restart lucee
Upvotes: 0
Reputation: 320
In my case I have this exact error when I was launching the Jetbrains IDEs, such as Pycharm, IntelliJ IDEA...
I typed this in the same terminal that I was using to start the IDE to solve the problem:
export DISPLAY=:1
Then I started the IDE from the same terminal issuing the command pycharm
and it worked like a charm.
Upvotes: 0
Reputation: 67
check whether $DISPLAY
variable is set or not, with the below command:
echo $DISPLAY
if the display variable is not set, run the below command to set, (even if it is set, you can have below one for your session)
export DISPLAY=:0.0
in putty also have the x
display location as :0.0
Upvotes: 3
Reputation: 448
I had the same issue on the Linux server I was working on. Connecting java to a X11 display worked on the head node, but not on any other. After contacting the administrator, it turned out that the current version of our job-scheduling system (SLURM) did not support X11 forwarding. They had to update SLURM (newer versions of SLURM support it) for it to work.
Upvotes: 1
Reputation: 143
For me none of the above worked, but after long search this worked for me.
export DISPLAY=localhost:20.0
Upvotes: 0
Reputation: 1175
This fixed my problem
xhost +
but Be aware that xhost +
completely deactivates authentication and allows everyone to access all application on your screen.
xhost +si:localuser:root
seems to work similar with proper authentication.
Upvotes: 7
Reputation: 115
If you are trying to export display using su and it still doesn't work. This is what worked for me. Try X11 forwarding for sudo users.
Connect the remote host using the -X option with ssh.
# ssh -X root@remote-host
Now list the coockie set for the current user.
# xauth list $DISPLAY
node01.thegeekdiary.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa
# echo $DSIPLAY
localhost:10.0
Switch to another user account using sudo. Add the cookie from the command output above to the sudo user.
# sudo su - [user]
# xauth add node01.thegeekdiary.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa
Export the display from step 2 again for the sudo user. Try the command xclock to verify if the x client applications are working as expected.
# export DISPLAY=localhost:10.0
Upvotes: 6
Reputation: 69
I have fixed this issue by logging in using Xorg. By default, I have used Wayland. It looks like Wayland eliminates most of the design flaws of the Xorg it has its own issues.
Upvotes: 1
Reputation: 1797
Mine issue was with the firewall. Disabled it temporarily.
[EDIT] And, the server hostname was pointing to another IP. Set it to simply localserver. strace xclock
helped to debug this issue.
Upvotes: 0
Reputation: 1494
First do this either in Build Phase of Jenkins if using or set in /etc/profile:
unset DISPLAY
export DISPLAY=:0
then set this property either in java code or using maven: -Djava.awt.headless=false
Upvotes: 3
Reputation: 58
In my case this error was not related to the DISPLAY port. I was trying to load an XML into Windchill (a PLM-software) and received only the above error on the terminal. In a logfile I found the report that my XML-file was corrupt. Maybe someone has a similar problem and can use this answer.
Upvotes: 0
Reputation: 718
For Ubuntu 17.10 Install X virtual frame buffer (xvfb)
apt install xvfb
And added these lines to the /etc/profile file...
# 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
Upvotes: 1
Reputation: 3460
I just didn't log out of root before running ./studio.sh All set.
Upvotes: 0
Reputation: 857
If you're triggering your code from Jenkins, enabling the option "Start Xvfb before the build, and shut it down after" might help. It helped me.
Upvotes: 0
Reputation: 309
I think you are working in sudo mode.Please checkout to the user mode and try again
Upvotes: 30
Reputation: 758
For me logging in as -Y instead of -X worked.
In case you've got untrusted X11 as shown below, then try -Y flag instead (if you trust the host):
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Upvotes: 7
Reputation: 29
I was using Xming and got similar error. Following steps were taken to fix the issue:
DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY
Replace XXX.XXX.XXX.XX
with your IP address.
Upvotes: 2
Reputation: 11
In my case there was no space left in my machine and I faced the same issue. Some times it could be the space issue. Check the space in your Linux/Unix environment and make sure your machine have enough space.
Upvotes: 1
Reputation: 22382
This will fix it:
/usr/bin/java -Djava.awt.headless=true $Your_program
Upvotes: 8
Reputation: 1
For me, the problem was that xorg-x11-xauth wasn't installed. I installed it and then it worked.
The packages that I have now are:
Upvotes: -1
Reputation: 752
First: start XQuartz
Second: ssh -X user@ip_address
...: start your process
if you ssh and then start XQuartz you will get that error
Upvotes: 4
Reputation: 787
After several days of futile effort of installing glassfish on raspberry pi 2 with headless fedora 22, Below worked for me without a hitch
unset DISPLAY
java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar
got my help from here
Upvotes: 4
Reputation: 23
Michael-O gave useful approach to solve the problem. Another way to solve this is by starting the server with Putty Console.
Upvotes: 1
Reputation: 2547
If you start application on a remote server while logged in by ssh then another way would be to start ssh with -x
parameter or add ForwardX11 no
in your /etc/ssh/ssh_config
. In this case ssh will not create environment variable DISPLAY.
Upvotes: -1
Reputation: 254
In case anybody trying to run the automated unit tests via maven-surefire-plugin on CI(jenkins,..), and getting the above mentioned error, be sure to update your surefire plugin configuration :
<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>
Upvotes: 10
Reputation: 18405
You need to specify the -Djava.awt.headless=true
parameter at startup time.
Upvotes: 75