最近一直在做我的J2ME的東西,各種牌子的模擬器基本都裝上了,WTK啊,S60 V3的啊,還有摩托的。今天在弄我的文件選擇器組件的時候忽然想起來以前在用Siemens CX65時用過的一個軟件,對我現在的程序有幫助,于是就想下載下來再運行一下研究看看。因為那個軟件用了Siemens私有的類,所以只能在Siemens的機器上跑;可是現在CX65已經多時不用,就拿出硬盤準備裝上SMTK模擬器。
說起Siemens的模擬器,也是我用的第一個手機Java模擬器,伴隨了我學習J2ME的坎坷道路。這個模擬器做的還是非常不錯的,速度快,模擬度很高,用起來很順手對開發幫助確實不小。無奈Siemens Mobile被Benq收購然后又倒閉后,這個東西基本就消失了。想想那時候Siemens的東西也確實不錯,唉,總覺得有點可惜。再想想現在Siemens整個Communication部門,又和Nokia搞了個NSN(弄死你),唉。。
打開SMTK安裝程序后,卻彈出了這樣的錯誤:沒有找到我的JRE

沒有找到我的JRE?我機器上裝的是1.6(6.0)版本的JDK,安裝程序怎么不認呢。想想這種安裝程序肯定是到注冊表查找一個跟JRE相關的鍵值來確定當前的安裝版本的,而且我注意到這句話里面有一個詞"at least",說明程序本身可以運行在高版本的JRE上。那我就要看看它到底是查找的哪一個鍵值吧。
于是,我啟動了大名鼎鼎的Sysinternals Process Monitor,開始監控這個安裝程序IDriver.exe的進程事件(重新運行了一下安裝程序)。
研究了每一行的輸出后,發現了可疑的兩行,IDriver.exe對注冊表中HKLM\Software\JavaSoft\Java Runtime Enviroment\1.5和1.6兩個鍵值進行了打開操作(RegOpenKey),但結果都是Name Not Found, 沒找到。于是可以判斷就是這個操作進行了JRE版本的查詢,而且只查詢了1.4和1.5兩個版本。
隨即我打開我的注冊表的相應位置,發現這里確實只有1.6的鍵
想要安裝程序通過,很簡單,建立一個1.5的鍵,里面的值跟1.6的鍵值保持一致就OK。

如上圖,1.5鍵值中的路徑都是JRE1.6的。
之后又運行了一遍SMTK的安裝程序,就沒有問題了。
發現以前做IT服務留下的知識還真是很有用的啊。
Sysinternals已經被微軟收購 http://technet.microsoft.com/en-us/sysinternals/default.aspx ,想學習這里面的工具可以去它的創始人Mark Russinovich 的Blog看看http://technet.microsoft.com/en-us/sysinternals/bb963890.aspx。
posted on 2008-03-21 16:02
ralphwho 閱讀(2136)
評論(1) 編輯 收藏 所屬分類:
J2ME