X11
cygwin putty 啟動錯誤:無法檢測圖形環境
當我啟動 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”選項,可用於恢復以前的行為。