64 位 SLES11 计算机无法在 Citrix 中运行 Java 图形应用程序

64 位 SLES11 计算机无法在 Citrix 中运行 Java 图形应用程序

我们有许多配置不同的实验室机器。当我们的某个用户尝试运行 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

这样就生成了之前没有的版本。但程序仍然无法运行。

答案1

现在这个问题终于解决了,所以我将把这个答案留在这里,以便其他遇到同样问题的人可以参考,因为这很不常见。Citrix 已承认这是其产品的问题,并已发布针对此问题的补丁。

Citrix 的服务请求编号为 60235154,补丁将包含在 2011 Q1 Feature Pack v3 中。

相关内容