Próbuję zainstalować aplikację Java na moim komputerze z systemem Linux (Slackware).
Otrzymałem następujący błąd i go nie rozumiem.
Czy możesz mi doradzić, jak podejść do problemu? Dziękuję Ci.
Oto, co otrzymuję: (Widzę, że należy ustawić jakąś zmienną X11 DISPLAY , ale jaką wartość mam jej podać i jak?)
~$ 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)
Odpowiedzi:
Jeśli jesteś na głównym ekranie, to
lub jeśli używasz csh lub tcsh
przed uruchomieniem aplikacji.
Właściwie jestem zaskoczony, że nie jest ustawiany automatycznie. Czy próbujesz uruchomić tę aplikację z terminala bez grafiki? Jeśli nie, czy zmodyfikowałeś domyślny .profile, .login, .bashrc lub .cshrc?
Zauważ, że ustawienie WYŚWIETLACZA na: 0.0 zakłada, że siedzisz przy głównym wyświetlaczu, jak powiedziałem, lub przynajmniej, że główny wyświetlacz jest zalogowany do twojego identyfikatora użytkownika. Jeśli nie jest zalogowany lub ma inny identyfikator użytkownika, to się nie powiedzie.
Jeśli przychodzisz z innego komputera i jesteś na głównym ekranie tego komputera i działa na nim X, możesz użyć "ssh -X hostname", aby połączyć się z tym hostem, a ssh przekaże ekran X z powrotem . ssh upewni się również, że zmienna środowiskowa DISPLAY jest ustawiona poprawnie (pod warunkiem, że nie jest ona pomieszana w różnych plikach kropek, o których wspomniałem powyżej). W sesji "ssh -X" zmienna środowiskowa DISPLAY będzie miała wartość taką jak "localhost: 11.0", która będzie wskazywać gniazdo, które ssh tuneluje do twojego lokalnego urządzenia.
źródło
Czy uruchamiasz to w środowisku X11? Możesz użyć okna terminala, ale musi ono znajdować się w X (albo po zalogowaniu graficznym, albo po uruchomieniu startx).
Jeśli jesteś już w środowisku graficznym, spróbuj wyeksportować DISPLAY =: 0 dla powłok typu bash (bash, sh itp.) Lub setenv DISPLAY: 0 dla powłok opartych na powłoce C (csh, tcsh itp.)
Jeśli połączyłeś się z innego komputera przez SSH, używasz opcji -X, aby wyświetlić interfejs graficzny na maszynie, na której siedzisz (pod warunkiem, że jest tam uruchomiony X serwer (taki jak xming dla Windows i standardowy Linux X serwer).
źródło
export DISPLAY=:0
musisz włączyć przekazywanie X11 w swoim PuTTy
aby to zrobić otwórz PuTTy, przejdź do Connection => SSH => Tunnels i zaznacz pole wyboru Enable X11 forwarding
Również sudo na serwer i wyeksportuj poniższą zmienną tutaj IP to adres IP twojej lokalnej maszyny
źródło
Jeszcze jedna rzecz, która może być problemem w przypadku podobnym do opisanego - X nie jest przekazywany, a $ DISPLAY nie jest ustawiane, gdy program 'xauth' nie jest zainstalowany po stronie zdalnej. Możesz zobaczyć, że wyszukuje go po uruchomieniu "ssh -Xv ip_address" i, jeśli nie zostanie znaleziony, zawiedzie, co nie jest widoczne, chyba że włączysz tryb gadatliwy (błąd IMO). Zwykle można znaleźć „xauth” w pakiecie o tej samej nazwie.
źródło
Bardzo łatwo, miałem ten sam problem, co wtedy, gdy pobrałem i zainstalowałem aplikację, która pomogłaby w wyświetleniu, a następnie naprawiłem błąd.
Pobierz tę aplikację xming:
http://sourceforge.net/project/downloading.php ?
Zainstaluj, a następnie użyj ustawień tego linku:
http://www.geo.mtu.edu/geoschem/docs/putty_install.html lub wykonaj następujące czynności:
Instalowanie / konfigurowanie PuTTy i Xming
Po pobraniu PuTTy i Xming na komputer, zainstaluj zgodnie z ich instrukcjami.
Konfiguracja Xming
Po zainstalowaniu Xming uruchom aplikację o nazwie „XLaunch” i sprawdź, czy ustawienia są takie, jak pokazano:
Konfigurowanie PuTTy
Po zainstalowaniu PuTTy kliknij dwukrotnie ikonę PuTTy na pulpicie i skonfiguruj, jak pokazano:
Pokazuje tworzenie profilu logowania, a następnie zapisywanie go.
zapisz profil, a następnie połącz się zdalnie z serwerem w celu przetestowania.
Twoje zdrowie!!!
źródło
Istnieje wiele sposobów, aby to zrobić. Zrobiłem poniżej coś wygodnego dla mnie i zawsze działa dobrze.
Na serwerze generowany jest plik .Xauthority i zauważ, że zmienna DISPLAY jest już ustawiona.
Lista $ xauth
$ xauth dodaj
Aby to przetestować, wpisz xclock lub xeyes
Uwaga : Aby zmienić użytkownika, skopiuj plik .Xauthority do katalogu domowego odpowiedniego użytkownika, a także wyeksportuj zmienną DISPLAY od tego użytkownika.
źródło
Miałem ten sam problem w Ubuntu 14.04.01, kiedy próbowałem zainstalować JDK 8 i Netbeans, jeśli uruchomię skrypt w terminalu Byobu (może z ekranami dzieje się to samo).
Po prostu wyjdź z Byobu i (w terminalu graficznym) uruchom skrypt.
źródło
Wstępna kontrola.
1) Podczas eksportowania WYŚWIETLACZA do innego komputera upewnij się, że polecenie zostało wprowadzone
xhost +
na tym komputerze. To polecenie pozwala innej maszynie wyeksportować swój WYŚWIETLACZ na tym komputerze. Mogą istnieć ograniczenia dotyczące bezpieczeństwa, po prostu o tym wiedz. Potrzebujesz sprawdzićssh -X MachineIP
nie będzie wymagaćxhost +
?2) Czasami
JCONSOLE
nie pokazuje całego procesu, ponieważ te procesy JVM mogą działać z innym użytkownikiem i eksportujesz DISPLAY z innym użytkownikiem. więc lepiej podążajCD_DIR>sudo ./jconsole
3) W WAS (WEBSPHERE); jconsole nie będzie w stanie połączyć się z procesem serwera java, w tym czasie po prostu przejdź do łącza, a następnie spróbuj go połączyć. To zadziałało dla mnie. Być może ta strona inicjuje niektóre zmienne, aby umożliwić jconsole połączenie z tym serwerem.
Konsola WAS> Serwery aplikacji> serwer1> Definicja procesu> Wirtualna maszyna języka Java
Napotkałem ten sam problem z maszyną AIX (gdzie dostępny jest tylko interfejs wiersza poleceń, nie ma interfejsu DISPLAY UI). Rozwiązałem, instalując
Krok 1: Za pośrednictwem tego komputera z systemem Windows połączyłem się z skrzynką unix, w której dostępna jest konsola GUI.
Krok 2: SSH do skrzynki AIX z tego pudełka UNIX.
Krok 3: ustaw DISPLAY jak "export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentionedOnTitle"
Krok 4: Teraz, jeśli uruchomimy jakiekolwiek programy, które wymagają DISPLAY; zostanie uruchomiony na tym pudełku z systemem UNIX.
Jeśli zainstalowałeś VNC na skrzynce UNIX, gdzie wyświetlacz jest dostępny; wtedy klient Windows i NX nie są wymagane. Krok 1: Użyj VNC, aby połączyć się z skrzynką Unix, w której dostępna jest konsola GUI.
Krok 2: SSH do skrzynki AIX z tego pudełka UNIX.
Krok 3: ustaw DISPLAY jak "export DISPLAY = UNIXMACHINE: VNCPORT"
Krok 4: Teraz, jeśli uruchomimy jakiekolwiek programy, które wymagają DISPLAY; zostanie uruchomiony na tym pudełku z systemem UNIX.
JESZCZE
Krok 1: SSH do skrzynki AIX z tego pudełka UNIX.
Krok 2: ustaw DISPLAY jak "export DISPLAY = UNIXMACHINE: VNCPORT"
Krok 3: Teraz, jeśli uruchomimy jakiekolwiek programy, które wymagają DISPLAY; zostanie uruchomiony na tym pudełku z systemem UNIX.
źródło
Dla tych, którzy próbują pobrać aplikację X Window działającą z systemu Windows z systemu Linux:
To, co zadziałało, to skonfigurowanie serwera xming na moim komputerze z systemem Windows, ustawienie opcji przekazywania X11 w kitu, kiedy łączę się z hostem linux i umieszczenie adresu IP systemu Windows z portem wyświetlania, a następnie zmiennej wyświetlania z moim adresem IP systemu Windows: 0.0
Nie zapomnij dodać adresu IP hostów linuxowych do pliku X0.hosts, aby upewnić się, że serwer xming akceptuje ruch z tego hosta. Zajęło mi trochę czasu, zanim to rozgryzłem.
źródło
Nie zapomnij wykonać "host +" na swoim "głównym" komputerze wyświetlającym, a kiedy łączysz się z maszyną przez ssh, robisz "ssh -x nazwa hosta"
źródło