首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

Ubuntu 7.04 下 Sun WTK 模擬器啟動崩潰問題:GTK LookAndFeel 與 Locale 衝突解決

     編輯:J2ME

環境與現象

  • 系統:Ubuntu 7.04
  • Java:jrockit 1.6 / jdk 1.6
  • IDE:Eclipse 3.3 + EclipseME 1.7.3
  • WTK:Sun WTK 2.5.1
  • 現象:非 root 用戶啟動 Eclipse 或 KToolbar 運行模擬器,拋出 NullPointerException 在 GTKLookAndFeel.initSystemColorDefaults;root 用戶正常。

錯誤堆棧

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initSystemColorDefaults(GTKLookAndFeel.java:1258)
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(GTKLookAndFeel.java:1500)
    ...

根因分析

  • Ubuntu 7.04 桌面用戶默認 Locale 為 zh_CN.UTF-8。
  • JRE 的 GTK LookAndFeel 實現在該 Locale 下存在 Bug (Sun Bug ID: 6389282),導致系統顏色默認值初始化空指針。
  • root 用戶通常以 C Locale 運行,避開該 Bug。

解決方案:啟動腳本強制指定 Locale

#!/bin/bash
# starteclipsewtk.sh
export LANG="en_US.UTF-8"
export LANGUAGE="en_US"
/home/eclipse/eclipse

賦予執行權限 chmod +x starteclipsewtk.sh,雙擊或命令行運行此腳本啟動 Eclipse,模擬器即可正常啟動。

副作用與現狀

  • ✅ 模擬器啟動崩潰徹底解決。
  • ❌ 模擬器界面中文顯示為方框 (因強制 en_US Locale,缺中文字體渲染)。
  • ⚠️ 中文問題未徹底解決,需進一步配置 JDK 字體回退或安裝中文字體包。

相關資源

總結

Ubuntu 7.04 下 WTK 模擬器崩潰為 **GTK LookAndFeel + zh_CN.UTF-8 Locale 的 JRE 已知 Bug**。通過啟動腳本強制 LANG=en_US.UTF-8 可繞過崩潰,但引入中文顯示缺失。生產環境建議升級系統/JRE 版本以徹底修復。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved