Java

64 位 SLES11 機器無法在 Citrix 中執行 java 圖形應用程序

  • July 19, 2010

我們有許多具有不同配置的實驗室機器。當我們的一位使用者嘗試執行 java 應用程序(例如 jconsole)時,它似乎已啟動,但不會顯示轉發,也不會顯示任何視窗。在這些情況下,它將失敗:

  • 在伺服器上安裝 64 位 Suse SLES11
  • 客戶端通過 Citrix 訪問伺服器
  • 該應用程序是一個java應用程序

更改其中任何一個,它都可以工作。64 位 SLES10 機器工作,32 位 SLES11 機器工作,用 cygwin/linux 訪問 64 位 SLES11 機器工作,執行除 java 應用程序以外的其他應用程序工作。

SuSE 從 SLES10 到 SLES11 是否有一些變化可能會影響 Citrix 中的顯示轉發?

有時,經過不同的時間後,它會因以下堆棧跟踪而崩潰:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment 
   at java.lang.Class.forName0(Native Method) 
   at java.lang.Class.forName(Class.java:169) 
   at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68) 
   at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:89) 
   at java.lang.Class.forName0(Native Method) 
   at java.lang.Class.forName(Class.java:169) 
   at java.awt.Toolkit$2.run(Toolkit.java:834) 
   at java.security.AccessController.doPrivileged(Native Method) 
   at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:826) 
   at sun.swing.SwingUtilities2$AATextInfo.getAATextInfo(SwingUtilities2.java:128) 
   at javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:1556) 
   at javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:130) 
   at javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1591) 
   at javax.swing.UIManager.setLookAndFeel(UIManager.java:542) 
   at javax.swing.UIManager.setLookAndFeel(UIManager.java:582) 
   at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1344) 
   at javax.swing.UIManager.initialize(UIManager.java:1433) 
   at javax.swing.UIManager.maybeInitialize(UIManager.java:1421) 
   at javax.swing.UIManager.getLookAndFeel(UIManager.java:495) 
   at sun.tools.jconsole.JConsole.updateLafValues(JConsole.java:63) 
   at sun.tools.jconsole.JConsole.<clinit>(JConsole.java:58) 
Could not find the main class: sun.tools.jconsole.JConsole.  Program will exit. 

更新:仍然有同樣的問題,當更改為不同的圖形庫時,它似乎改變了問題:

export JAVA_HOME=/usr/java/default
export PJA=$HOME/lib/pja.jar
jconsole -J-Xbootclasspath:$JAVA_HOME/jre/lib/rt.jar:$PJA -J-Dawt.toolkit=com.eteks.awt.PJAToolkit -version

這會產生它以前沒有的版本。該程序仍然無法執行。

現在終於解決了,所以我會把這個答案留給遇到同樣問題的其他人,因為它非常不尋常。Citrix 承認這是他們的產品存在的問題,並已針對此問題發布了更新檔程序。

Citrix 的服務請求編號為 60235154,更新檔將包含在 2011 Q1 Feature Pack v3 中。

引用自:https://serverfault.com/questions/64083