Linux上 Can't connect to X11 window server using XX as the value of the DISPLAY 錯誤解決方法


在Linux上運行需要圖形界面的程序時出現如下錯誤提示:

No protocol specified
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':1.0' as the value of the DISPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:66) at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:187) at java.security.AccessController.doPrivileged(Native Method) at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:146) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:260) at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81) at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:123) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:260) 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 javax.swing.UIManager.getSystemLookAndFeelClassName(UIManager.java:611) at hgdbmonitor.view.MonitorView.main(MonitorView.java:2147) 

錯誤原因:

  1. Linux默認情況下是啟動x11 windows server的,而且它是與windows的圖形工具顯示相關;
  2. 變量DISPLAY的值與程序界面顯示在機器的哪個圖形化終端有關,通過執行who命令和who am i 命令,可以知道當前圖形化終端是第n個(如下是第2個),那么變量DISPLAY的值應該是IP:(n-1)或者:(n-1)(如下是:1.0),只有這樣java圖形程序的界面才能正常顯示出來。
[root@localhost ~]# who staff :0 2016-01-09 13:18(:0) weblogic pts/1 2016-01-09 13:42(:0) [root@localhost ~]# who am i weblogic pts/1 2016-01-09 13:42(:0) [root@localhost ~]# echo $DISPLAY :0

解決辦法: 
筆者的錯誤是使用Centos桌面版界面,使用了staff用戶登錄,所以圖形工具已經被staff用戶所在的用戶組所占用,因此weblogic用戶組無法使用圖形工具,只需把weblogic和staff兩個用戶變為一個組,或者使用weblogic用戶登錄Centos桌面版系統即可。 
例如更改staff用戶為weblogic用戶組:

[root@localhost ~]# usermod -g weblogic staff


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM