Java
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
該問題與特定程式碼有關,該程式碼從系統資料庫中讀取 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 先生找到原因並解決它!
這似乎是一個錯誤,請參閱以下 URL 了解更多詳細資訊。