Java 应用程序在 Citrix 会话中启动时崩溃

Java 应用程序在 Citrix 会话中启动时崩溃

我们有一个通过 citrix 发布的 Java 应用程序。当为新用户启动应用程序时,它在启动时立即崩溃。

如果我们使用 RDP 登录,然后注销(不启动应用程序),它就开始工作了。

我们发布了另一个较小的 java 应用程序,它适用于新用户,无需先使用 RDP 登录。

脚步:

- Publish java app
- create new user
- run published app in citrix -> crash
- log on user using rdp, log out
- run published app in citrix -> works fine

让每个新用户登录到每个 citrix 服务器真的变得很累 :-P

答案1

答案2

该问题与从注册表读取 AppData 设置的特定代码有关。

这是来自 netbeans 启动器(在以后的版本中可能会更改)

char* getUserHomeFromRegistry(char* userhome)
{
    HKEY key;

    if (RegOpenKeyEx(
            HKEY_CURRENT_USER,
            "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",
            0,
            KEY_READ,
            &key) != 0)
        return NULL;

    char *path = GetStringValue(key, "AppData");
    RegCloseKey(key);

    strcpy(userhome, path);
    return userhome;
 }

此注册表设置并不总是可用,从而导致崩溃。

但是,%APPDATA% 环境变量是,因此,如果它不可用,我们就制作一个设置注册表的登录应用程序。

感谢 Zanchenko 先生找到原因并解决它!

相关内容