2011年11月23日 星期三

opensuse12.1 執行 eclipse

這陣子都在用 eclipse 寫 JAVA 的程式
但是之前在使用 opensuse 11.4 時,執行 eclipse 都不會有啥問題

這兩天更新成 opensuse 12.1 64bit 之後,eclipse 常常會自動關閉
剛開始以為是 java 版本的問題
但是把 jdk 的版本換成 1.7、1.6u29、openjdk 都不行

只要將 WEB-INF 下的 lib 目錄展開就會出現下面的錯誤訊息畫面


經過 google 之後,發現是 glibc 這隻程式檢查的問題
glibc 這隻程式主要功能為可以執行附加的內部數據 健全檢查,從而在盡可能早的時候發現和保護數據被破壞。在默認的情況下,當被破壞的數據被發現時,與以下相似的錯誤信息會被顯示在標准的錯誤輸出上(如果 stderr 沒有打開,會被記錄在 syslog 中)

所以預設會有環境變數來檢查
MALLOC_CHECK_=0 <== 以前的版本都設為 0

而 opensuse 12.1 的參數預設為 3

以下為  MALLOC_CHECK_ 的參數內容

0 - 不產生錯誤信息,也不中止這個程序

1 - 產生錯誤信息,但是不中止這個程序

2 - 不產生錯誤信息,但是中止這個程序

3 - 產生錯誤信息,並中止這個程序

所以我們只要將環境變數設為 0 或 1 就可以忽略這個錯誤了
以下為 eclips.sh 檔
#!/bin/sh

export MALLOC_CHECK_=0
/home/zipe/eclipse/eclipse
存檔之後將 eclipse.sh 改為可執行就完成了

$chmod +x eclipse.sh

關於這問題應該是 eclispe 本身程式的問題
所以只能等 eclipse 釋出修正後的版本才能解決摟!!

沒有留言: