問題A導致了問題B的產生,當你Fix了問題A後,往往並不能解決問題B,而是會引出問題C。
今天我遇見一個Java Native的問題:Can't load IA 32-bit .dll on a AMD 64-bit platform?
有兩個解決方案:
1,.dll 升級成 64bit
2,JDK由64位轉成32位
根據實際情況,方案1較麻煩。因此,採用方案2。
卸載64bit的jdk,安裝32位版本。配置好環境變量:JAVA_HOME,PATH,CLASSPATH。
JAVA_HOME: JDK安裝路徑,如C:/java/jdk1.6,此路徑下包括lib,bin,jre等文件夾。
PATH:設置爲%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%PATH%
CLASSPATH:設置爲爲:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar (要加.表示當前路徑)
在命令行下測試:java及javac命令,找不到?
在命令行中輸入:set java_home,檢查後沒有問題
在命令行中輸入:set path, 檢查發現%JAVA_HOME%沒有自動替換。
原來JAVA_HOME是在用戶環境變量中設置的,Path是在系統環境變量中設置的。解決方案,都改爲用戶環境變量或者系統環境變量。
現在測試java及javac命令,OK。
再次啓動Eclipse,還是一閃而過,連錯誤提示也沒有。
原來在eclipse文件夾裏面有一個eclipsec.exe程序,在命令行裏運行這個程序,可以得到問題對應的出錯提示。
D:\eclipse>eclipsec.exe
Error occurred during initialization of VM
看來還是JDK配置的有問題,再檢查。 However,配置看起來沒有問題。
折騰了一下午,原來是64bit JDK卸載不乾淨,有殘留。
命令行下進入C:\Windows目錄,執行dir /s java.exe,搜索到了另外一份java.exe。別外還有javac.exe及javaw.exe。把它們都刪掉,再啓動eclipse, OK。
參考文獻:
http://stackoverflow.com/questions/8113080/cant-load-ia-32-bit-dll-on-a-amd-64-bit-platform
http://blog.csdn.net/huanghm88/article/details/3965218
http://gaobaolu.blog.edu.cn/home.php?mod=space&uid=1555437&do=blog&id=544840