X11

cygwin putty 啟動錯誤:無法檢測圖形環境

  • August 21, 2018

當我啟動 cygwin/XX 伺服器(1.17.1-2)然後啟用 x11 轉發的膩子(X 顯示位置設置為localhost:10.0和 MIT-Magic-Cookie-1 勾選)我仍然收到錯誤

   Startup Error: Unable to detect graphics environment

當我嘗試啟動任何程序(例如 pycharm)時。在我的 Windows 機器和我的 linux 機器上,我都沒有DISPLAY設置變數。當我將滑鼠懸停在 Windows 托盤中的 cygwin 圖示上時,它會顯示cygwin x server :0.0,所以我export DISPLAY=:0.0在 Windows 和 linux 機器上都進行了嘗試。但後來我得到

Start Failed: Failed to initialize graphics environment

java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
       at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
       at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
       at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
       at java.lang.Class.forName0(Native Method)
       at java.lang.Class.forName(Class.java:264)
       at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
       at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
       at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:128)
       at java.lang.Class.forName0(Native Method)
       at java.lang.Class.forName(Class.java:264)
       at java.awt.Toolkit$2.run(Toolkit.java:860)
       at java.awt.Toolkit$2.run(Toolkit.java:855)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854)
       at com.intellij.ui.AppUIUtil.updateFrameClass(AppUIUtil.java:155)
       at com.intellij.idea.StartupUtil.prepareAndStart(StartupUtil.java:94)
       at com.intellij.idea.MainImpl.start(MainImpl.java:20)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at com.intellij.ide.plugins.PluginManager.lambda$start$0(PluginManager.java:75)
       at java.lang.Thread.run(Thread.java:745)

我嘗試了各種組合(DISPLAY=:0)刪除X display location膩子但沒有幫助

設置:

  • linux盒子是一個Red Hat Enterprise Linux Server release 6.6 (Santiago)
  • Windows 是 Windows 7 Enterprise 64 位
  • Putty 是 0.68 版本 編譯器:Visual Studio 2015 / MSVC++ 14.0 (_MSC_VER=1900)

謝謝

您需要使用選項啟動 startxwin -listen。例如我的快捷方式是:

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin -- -listen tcp"

https://sourceware.org/ml/cygwin-announce/2015-04/msg00050.html

‘-nolisten tcp’ 現在是預設設置,因此伺服器只接受 unix 域套接字上的本地連接。添加了一個“-listen”選項,可用於恢復以前的行為。

引用自:https://unix.stackexchange.com/questions/463693