I am trying to install a Java application on my Linux machine (Slackware).
I have received the following error, and I do not understand it.
Could you advise me how to approach the problem? Thank you.
Here is what I get: (I see that some X11 DISPLAY variable needs to be set, but what value should I give it and how?)
~$ 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)
If you're on the main display, then
export DISPLAY=:0.0
or if you're using csh or tcsh
setenv DISPLAY :0.0
before running your app.
Actually, I'm surprised it isn't set automatically. Are you trying to start this application from a non-graphic terminal? If not, have you modified the default .profile, .login, .bashrc or .cshrc?
Note that setting the DISPLAY to :0.0 pre-supposes that you're sitting at the main display, as I said, or at least that the main display is logged on to your user id. If it's not logged on, or it's a different userid, this will fail.
If you're coming in from another machine, and you're at the main display of that machine and it's running X, then you can use "ssh -X hostname" to connect to that host, and ssh will forward the X display back. ssh will also make sure that the DISPLAY environment variable is set correctly (providing it isn't being messed with in the various dot files I mentioned above). In a "ssh -X" session, the DISPLAY environment variable will have a value like "localhost:11.0", which will point to the socket that ssh is tunnelling to your local box.
you must enable X11 forwarding in you PuTTy
to do so open PuTTy, go to Connection => SSH => Tunnels and check mark the Enable X11 forwarding
Also sudo to server and export the below variable here IP is your local machine's IP
export DISPLAY=10.75.75.75:0.0
Are you running this from within an X11 environment? You can use a terminal window, but it has to be within X (either after a graphical login, or by running startx).
If you're already within a graphical environment, try export DISPLAY=:0 for bash like shells (bash, sh, etc) or setenv DISPLAY :0 for C shell based shells (csh, tcsh, etc)
If you've connected from another machine via SSH, you use the -X option to display the graphical interface on the machine you're sitting at (provided there's an X server running there (such as xming for windows, and your standard Linux X server).
There are many ways to do this. I did something below convenient to me and always works fine.
On your remote server, make sure to install xorg-x11-xauth, xorg-x11-font-utils, xorg-x11-fonts.
Run the Xming Server on you local desktop
On putty, before ssh to the server, enable the X11 forwarding and set the display location to localhost:0.0
On the server, .Xauthority file is generated and notice that the DISPLAY variable is already set.
$ xauth list
$ xauth add
To test it, type xclock or xeyes
Note: To switch user, copy the .Xauthority file to the home directory of the respective user and also export the DISPLAY variable from that user.
One more thing that might be the problem in a case similar to described - X is not forwarded and $DISPLAY is not set when 'xauth' program is not installed on the remote side. You can see it searches for it when you run "ssh -Xv ip_address", and, if not found, fails, which's not seen unless you turn on verbose mode (a fail IMO). You can usually find 'xauth' in a package with the same name.
Very Easy, Had this same problem then what i did was to download and install an app that would help in displaying then fixed the error.
Download this app xming:
http://sourceforge.net/project/downloading.php?
Install, then use settings on this link:
http://www.geo.mtu.edu/geoschem/docs/putty_install.html or follow this steps:
Installing/Configuring PuTTy and Xming
Once PuTTy and Xming have been downloaded to the PC, install according to their respective instructions.
Configuring Xming
Once Xming is installed, run the application called 'XLaunch' and verify that the settings are as shown:
select Default entries on Display Settings windows, click next
click next on Session Type window.
click next on Additional parameters window(Notice clipboard checkbox is true)
save configuration and click to finish.
Configuring PuTTy
After installing PuTTy, double-click on the PuTTy icon on the desktop and configure as shown:
This shows creating a login profile then saving it.
On ssh -> X11, click on checkbox to enable X11 forwarding.
on X display location textbox, type localhost:0.0
save profile then connect remotely to server to test.
Cheers!!!
For those who are trying to get an X Window application working from Windows from Linux:
What worked for me was to setup xming server on my windows machine, set X11 forwarding option in putty when I connect to the linux host and put in my windows ip address with the display port and then the display variable with my windows IP address:0.0
Dont forget to add the linux hosts IP address to the X0.hosts file to ensure that the xming server accepts traffic from that host. Took me a while to figure that out.
I have had the same issue in Ubuntu 14.04.01 when I tried to install JDK 8 and Netbeans if I launch the script inside a Byobu terminal (maybe with Screens happens the same).
Just exit Byobu and (in a graphical terminal) run the script.
Initial Check.
1) When you are exporting the DISPLAY to other machine, ensure you entered the command xhost + on that machine. This command allows to other machine to export their DISPLAY on this machine. There may be security constraints, just know about it. Need to check ssh -X MachineIP will not require xhost + ?
2) Some times JCONSOLE won't show all its process, since those JVM process may run with different user and you are exporting the DISPLAY with another user. so better follow CD_DIR>sudo ./jconsole
3) In WAS (WEBSPHERE); jconsole won't be able to connect its java server process, that time just go till the link, then try connecting it. This worked for me. May be this page is initializing some variables to enable jconsole to connect with that server.
WAS console > Application servers > server1 > Process definition > Java Virtual Machine
I have faced the same issue with AIX (where command line interface only available, There is no DISPLAY UI) machine. I resolved by installing
NX Client for Windows
Step 1: Through that Windows machine, I connected with unix box where GUI console is available.
Step 2: SSH to the AIX box from that UNIX box.
Step 3: set DISPLAY like "export DISPLAY=UNIXMACHINE:NXClientPORTConnectedMentionedOnTitle"
Step 4: Now if we launch any programs which requires DISPLAY; it will be launched on this UNIX box.
VNC
If you installed VNC on UNIX box where display is available; then Windows and NX Client is not required.
Step 1: Use VNC to connect with Unix box where GUI console is available.
Step 2: SSH to the AIX box from that UNIX box.
Step 3: set DISPLAY like "export DISPLAY=UNIXMACHINE:VNCPORT"
Step 4: Now if we launch any programs which requires DISPLAY; it will be launched on this UNIX box.
ELSE
Step 1: SSH to the AIX box from that UNIX box.
Step 2: set DISPLAY like "export DISPLAY=UNIXMACHINE:VNCPORT"
Step 3: Now if we launch any programs which requires DISPLAY; it will be launched on this UNIX box.
Set the display mode is fine and also make sure that the apache Jmeter start from your USER mode, DON'T run in ROOT user.
$ cd /home/USER/apache-jmeter-5.5/
$ ./jmeter
There are two possibilities for it if your app has GUI or not:
1-) If your java app has GUI, firstly ensure that you have installed jdk package normally (non-headless). For example if you installed this:
sudo apt install openjdk-19-jre-headless
remove it:
sudo apt remove openjdk-19-jre-headless
then install the normal version:
sudo apt install openjdk-19-jre
Simply headless is using for GUIless apps. Further information you can look here: Difference between openjdk-6-jre, openjdk-6-jre-headless, openjdk-6-jre-lib
Then, either try to set DISPLAY variable as:
export DISPLAY=:0
or if it does not work (then, probably you have multiple monitors), set as:
export DISPLAY=:1
then run your jar file:
java -jar gate-5.0-beta1-build3048-installer.jar
2-) If your java app has no GUI, while you are running the app, you can try java.awt.headless=true flag as:
java -Djava.awt.headless=true -jar gate-5.0-beta1-build3048-installer.jar
Don't forget to execute "host +" on your "home" display machine, and when you ssh to the machine you're doing "ssh -x hostname"
This question already has answers here:
Run command prompt as Administrator
(4 answers)
Closed 5 years ago.
I am trying to share a folder from within java using the following windows command: net share shareName=C:\folderName /grant:everyone,FULL
This command needs to be run as admin. Running it in the default cmd window gives a permissions error, but running it in cmd as admin works.
I am aware that you can run a command from within java using Runtime.getRuntime().exec("commandHere");. However, this does not execute it as admin. I've looked around, but everything either pertains to running a file as admin, or opening cmd as admin, neither of which I want to do. I just want to execute that one command.
I believe you can run the program as Admin.
either create batch file with admin privs
or launch command/powershell in admin mode and then launch java program.
I don't think windows will allow you to run program in admin mode without admin access. [of course for security reasons]
Also, I am not sure if java allows automatic elevating privileges with users permission like those allow, deny prompts with admin icon.
I am creating a hotspot software for which I need to run a batch file as administrator from a java program. The batch file contains the following two commands:
netsh wlan set hostednetwork mode=allow ssid=name key=password
netsh wlan start hostednetwork
name and password are taken as input from the user.
As capturesteve has written - run the app as administrator. You can use for example cmd.exe under Windows. If you run the cmd.exe with administrator privileges, everything what will be started from this "administrator" cmd.exe will inherit the rights of his owner. It's a universal principle in Windows (and not only in Windows).
Run the cmd.exe as administrator and start the java app from it:
https://technet.microsoft.com/en-us/library/cc947813%28v=ws.10%29.aspx
http://www.softwareok.com/?seite=faq-Windows-8&faq=7
+
Java: run as administrator
Executing Java program as administrator
The best way would be to run the java application itself as sudo.
I'm trying to automate the install of a Java 7 runtime on my Windows Server. I can make the install run silently, but the Ask toolbar seems to get installed as well. This enrages me even more than when it prompts during the desktop install.
How can I make it stop? And while I'm at it, is there a way to not prompt for third-party products when doing the regular updates on the desktop?
It's easy! After downloading the executable installer (for example, http://download.oracle.com/otn-pub/java/jdk/7/jre-7-windows-x64.exe), open a command line with administrative privileges, go to your downloads directory, and run the executable with /s SPONSORS=0
For example:
jre-7-windows-x64.exe /s SPONSORS=0
This will not only run a silent installation, but it will bypass any sponsor offers.
i am trying to copy files which are in jar file to the system32 folder of my machine using the following code
Runtime r=Runtime.getRuntime();
Process p=r.exec("cmd /c copy hello.dll c:\\windows\\system32\\");
But here the file is not copied???!!!!
but when iam giving
Runtime r=Runtime.getRuntime();
Process p=r.exec("cmd /c copy hello.dll c:\\windows\\");
the file is copied to the windows folder......
can any one help me..........
iam using a windows 7 machine
The app needs to be run as Administrator or you must prompt the user to raise their permissions to Administrator. In Windows 7, it is insufficient for the user to have Administrative privileges--as they could in xp. They must explicitly give the application permission to perform such a copy.
Make sure your command prompt(or IDE) is running in an Administrator mode, if your are running your program via command prompt.