"X11 DISPLAY 변수 없음" - 무슨 뜻입니까?
Linux 머신(Slackware)에 Java 애플리케이션을 설치하려고 합니다.
아래의 에러가 발생하여 이해할 수 없습니다.
그 문제에 어떻게 접근해야 하는지 조언해 주시겠어요?감사합니다.
(X11 DISPLAY 변수 중 몇 가지를 설정해야 하는데 어떤 값을 어떻게 지정해야 합니까?)
~$ 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)
메인 디스플레이에 있으면
export DISPLAY=:0.0
또는 csh 또는 tcsh를 사용하는 경우
setenv DISPLAY :0.0
를 클릭합니다.
사실 자동으로 설정되지 않는 것이 놀랍습니다.비그래픽 단말기에서 이 애플리케이션을 시작하려고 합니까?그렇지 않은 경우 기본 .profile, .login, .bashrc 또는 .cshrc를 변경했습니까?
DISPLAY를 :0.0으로 설정하면 이미 말했듯이 메인 디스플레이에 앉아 있거나 적어도 메인 디스플레이가 사용자 ID에 로그온되어 있는 것을 전제로 합니다.로그온되어 있지 않거나 다른 사용자 ID일 경우 실패합니다.
다른 머신에서 접속하여 그 머신의 메인 디스플레이에 X 를 실행하고 있는 경우는, 「ssh - X hostname」을 사용해 호스트에 접속할 수 있습니다.그러면 ssh 가 X 디스플레이를 다시 전송합니다.또한 ssh는 DISPLAY 환경변수가 올바르게 설정되어 있는지 확인합니다(상기 설명한 다양한 도트파일에 문제가 없는 경우)."ssh - X" 세션에서 DISPLAY 환경변수는 "localhost: 11.0"과 같은 값을 가집니다.이 값은 ssh가 로컬박스에 터널링하고 있는 소켓을 가리킵니다.
X11 환경에서 실행하고 있습니까?터미널 창을 사용할 수 있지만 X 내에 있어야 합니다(그래픽 로그인 후 또는 startx 실행).
이미 그래픽 환경에 있는 경우 bash like 쉘(shell, sh 등)의 경우 DISPLAY=:0을 내보내고, C 쉘 기반 쉘(csh, tcsh 등)의 경우 setenv DISPLAY:0을 내보냅니다.
SSH 경유로 다른 머신으로부터 접속하고 있는 경우는, -X 옵션을 사용하고, 현재 앉아 있는 머신의 그래픽 인터페이스를 표시합니다(Windows용의 xming, 표준의 Linux X 서버 등).
Pu에서 X11 전송을 활성화해야 합니다.TTy
그렇게 해서 푸를 열다TTy, Connection = > SSH = > Tunnels 순으로 이동하여 Enable X11 Forwarding(X11 전송 활성화)에 체크 마크를 붙입니다.
또한 서버에 sudo하여 아래 변수를 내보냅니다. IP는 로컬 머신의 IP입니다.
export DISPLAY=10.75.75.75:0.0
이렇게 하는 방법은 여러 가지가 있습니다.나는 나에게 편리한 이하의 일을 했고 항상 잘 된다.
- 리모트 서버에 xorg-x11-xauth, xorg-x11-font-utils, xorg-x11-fonts 를 인스톨 해 주세요.
- 로컬 데스크톱에서 Xming 서버 실행
- putty에서는 서버에 대한 ssh 전에 X11 전송을 활성화하고 표시 위치를 localhost: 0.0으로 설정합니다.
서버에서 .Xauthority 파일이 생성되어 DISPLAY 변수가 이미 설정되어 있는 것을 알 수 있습니다.
$xauth 리스트
$xauth 추가
테스트하려면 xclock 또는 xeyes를 입력합니다.
주의: 사용자를 전환하려면 .Xauthority 파일을 해당 사용자의 홈디렉토리에 복사하고 해당 사용자로부터 DISPLAY 변수도 내보냅니다.
또 하나, 리모트 측에 「xauth」프로그램이 인스톨 되어 있지 않은 경우는, X 가 전송 되지 않고, $DISPLAY 가 설정되어 있지 않습니다."ssh -Xv ip_address"를 실행하면 검색되며 찾을 수 없는 경우 오류가 발생합니다. 이는 상세 모드(실패 IMO)를 켜지 않으면 표시되지 않습니다.보통 같은 이름의 패키지에서 'xauth'를 찾을 수 있습니다.
매우 간단하지만, 같은 문제를 안고 있으면, 표시에 도움이 되는 앱을 다운로드해 인스톨 하고, 에러를 수정했습니다.
다음 앱 xming 다운로드:
http://sourceforge.net/project/downloading.php?
설치 후 이 링크의 설정을 사용합니다.
http://www.geo.mtu.edu/geoschem/docs/putty_install.html 또는 다음 절차를 따릅니다.
Pu 설치/설정TTy 및 Xming
PuTTy 및 Xming을 PC에 다운로드하면 각각의 지시에 따라 설치합니다.
Xming 설정
Xming이 설치되면 'XLaunch'라는 응용 프로그램을 실행하여 설정이 다음과 같은지 확인합니다.
- 디스플레이 설정 창에서 기본 항목을 선택하고 다음을 클릭합니다.
- [ Session Type ]창에서 [Next]을 클릭합니다.
- Additional Parameters 창에서 다음을 클릭합니다(Notice 클립보드 확인란이 True임).
- 설정을 저장하고 을 클릭하여 완료합니다.
Pu의 설정TTy
Pu 설치 후TTy, Pu를 더블 클릭합니다.바탕화면의 TTy 아이콘 및 다음과 같이 설정합니다.
로그인 프로파일을 작성한 후 저장합니다.
- ssh -> X11 의 경우는, 체크 박스를 클릭해 X11 전송을 유효하게 합니다.
- X 표시 위치 텍스트 상자에 localhost:0.0을 입력합니다.
프로파일을 저장한 후 원격으로 서버에 연결하여 테스트합니다.
건배!!!
Windows에서 Linux에서 작동하는 X Window 응용 프로그램을 가져오려는 사용자:
Windows 머신에 xming 서버를 셋업하고 Linux 호스트에 접속할 때 X11 전송 옵션을 putty로 설정하고 디스플레이 포트를 사용하여 Windows IP 주소를 입력한 다음 디스플레이 변수를 Windows IP 주소로 0.0으로 설정하는 것이 효과적이었습니다.
X0.hosts 파일에 Linux 호스트의 IP 주소를 추가하여 xming 서버가 해당 호스트로부터의 트래픽을 받아들이도록 하는 것을 잊지 마십시오.그걸 알아내는데 시간이 좀 걸렸어요
Ubuntu 14.04.01에서도 Byobu 단말기에서 스크립트를 실행하면 JDK 8과 Netbeans를 설치하려고 했을 때 같은 문제가 발생하였습니다(화면도 마찬가지일 수 있습니다).
Byobu를 종료하고 (그래픽 단말기에서) 스크립트를 실행합니다.
초기 체크
머신으로 는 명령어 1) DISPLAY를 합니다.xhost +
를 사용하면 이 이머신의 수 .이 명령어를 사용하면 다른 기계에서 이 기계로 디스플레이를 내보낼 수 있습니다.보안상의 제약이 있을 수 있으니 알아두세요. ssh -X MachineIP
없다xhost +
무슨 일입니까?
2) ★★JCONSOLE
JVM 는 다른 될 수 것은 JVM을 따라가는 것이 .따라서 다음 절차를 따르는 것이 좋습니다.CD_DIR>sudo ./jconsole
3) WAS (WEBSphere)에서는 jconsole은 Java 서버 프로세스를 연결할 수 없습니다.그냥 링크까지 가서 연결을 시도합니다.이건 나한테 효과가 있었어.이 페이지는 jconsole이 해당 서버에 연결할 수 있도록 일부 변수를 초기화하고 있습니다.
WAS console > Application servers > server1 > Process definition > Java Virtual Machine
AIX(명령줄 인터페이스만 사용할 수 있고 디스플레이 UI는 없습니다) 머신에서도 같은 문제가 발생하였습니다.를 인스톨 해 해결했습니다.
Windows용 NX 클라이언트
순서 1: 그 Windows 머신을 통해 GUI 콘솔을 사용할 수 있는 UNIX 박스에 접속했습니다.
순서 2: 그 UNIX 박스에서 AIX 박스로 SSH합니다.
순서 3: "export DISPLAY=DISPLAYMACHINE:NXClientPORTConnectedReachedOnTitle"과 같이 DISPLAY를 설정합니다.
스텝 4: DISPLAY를 필요로 하는 프로그램을 기동하면, 이 UNIX 박스에서 기동합니다.
VNC
디스플레이를 사용할 수 있는 UNIX 박스에 VNC 를 인스톨 했을 경우는, Windows 와 NX Client 는 필요 없습니다.순서 1: VNC를 사용하여 GUI 콘솔을 사용할 수 있는 Unix 박스와 연결합니다.
순서 2: 그 UNIX 박스에서 AIX 박스로 SSH합니다.
순서 3: "export DISPLAY=DISPLAYMACHINE:VNCPORT"와 같이 DISPLAY를 설정합니다.
스텝 4: DISPLAY를 필요로 하는 프로그램을 기동하면, 이 UNIX 박스에서 기동합니다.
또 다른
순서 1: 그 UNIX 박스에서 AIX 박스로 SSH합니다.
순서 2: "export DISPLAY=DISPLAYMACHINE:VNCPORT"와 같이 DISPLAY를 설정합니다.
순서 3: DISPLAY를 필요로 하는 프로그램을 기동하면, 이 UNIX 박스에서 기동합니다.
디스플레이 모드를 정상으로 설정하고 apache Jmeter가 USER 모드에서 시작하는지 확인합니다. ROOT 사용자에서는 실행하지 마십시오.
$ cd /home/USER/apache-jmeter-5.5/
$ ./jmeter
"홈" 디스플레이 머신에서 "host +"를 실행하는 것을 잊지 마십시오.머신에 ssh를 할 때는 "ssh - x hostname"을 실행합니다.
언급URL : https://stackoverflow.com/questions/662421/no-x11-display-variable-what-does-it-mean
'programing' 카테고리의 다른 글
tzlocal()을 사용하여 datetime을 MariaDB에 저장하는 방법 (0) | 2022.10.05 |
---|---|
VueJS v-if = 어레이[인덱스]가 작동하지 않음 (0) | 2022.09.30 |
연결된 테이블에서 아이들의 총 레코드를 가져옵니다. (0) | 2022.09.29 |
Mac OS X에 MySQLdb(Python Data Access Library to MySQL)를 설치하는 방법 (0) | 2022.09.29 |
숫자의 정수와 십진수를 구하는 방법은? (0) | 2022.09.29 |