都是 S40 系列的手機,都支持且僅支持 64KB 以下的 java 程序(限 JAR 格式),為什么在別的機子(如功能比 3200 還低的 3100 )上運行良好的 JAVA 程序上傳至 3200 就根本不能運行了呢?這個問題一直困擾了我兩年多,而且我相信不單是我,廣大的看官也深有同感。
更加奇怪的是,同樣是 64KB 以下的 JAVA 程序,在某一款 S40 手機(如 3100 )上均能運行,而換到 3200 上,則有些能夠運行,有些不能夠運行。至于哪些程序能夠運行而哪些程序不能夠運行,則毫無規律可言。
直覺告訴我,這種現象的出現與硬件性能的高低是沒有關聯的,我于是對各種各樣的 JAR 程序反復做起了實驗,實驗表明:
1 .凡是用 Oxygen Phone Manager 、 MobiMB Mobile Media Browser 或是 Nokia PC Suite 中任意一款軟件上傳至 3200 上不能運行的,換用其它軟件上傳照樣不行。
2 .程序不能運行的概率和程序的文件大小無關(限 64KB 以內)。
3 .不能運行的 JAR 文件在用 Oxygen Phone Manager 、 MobiMB Mobile Media Browser 或 Nokia PC Suite 上傳后,該程序的名稱在這三款軟件的列表里均顯示亂碼,而在 3200 上則顯示中文( 3200 雖然不能運行該程序,但是能看到文件名)。
4 .并非所有中文名的 JAR 文件上傳至 3200 都不能運行。
5 .上傳至 3200 后,在手機上顯示為英文名的 JAR 文件一定可以運行。
6 .凡不能運行的 JAR 文件,將其文件名改為英文名,上傳至手機仍然不能運行。
正是根據這一次次實驗的結果,我一步步找出了癥結之所在,那就是:不能運行的 JAR 程序和它的文件名是否是中文名無關,而和它的 MIDlet-Name 有關。
下面就教大家完美運行本不能在 3200 上運行的 JAR 程序的方法:
1 .在電腦上,用鼠標右鍵點擊 JAR 程序,選擇“打開”-“從列表中選擇程序”-“ Winrar ”,點擊“確定”。
2 .找到“ META-INF ”文件夾,雙擊進入。
3 .雙擊打開“ MANIFEST.MF ”文件,找到“ MIDlet-Name ”一行,將冒號后面的漢字改為英文即可。
4 .之后可用“ JAD 生成器”之類的軟件再重新生成一個對應的 JAD 文件(用 MobiMB Mobile Media Browser 的話可以不用生成 JAD 文件而直接上傳)。
之后你再將 JAVA 程序上傳至 3200 中,就會驚喜地發現——原本不能運行的程序已經可以完美運行了(此法對非 S40 甚至非諾基亞品牌的 64KB 以內的 JAR 文件亦有效)!
補充說明:
1 .但凡原始 JAR 程序先經過 Winrar 解壓縮一次,然后再通過 Winrar 壓縮成 JAR 文件的,其結果會造成文件的損壞,從而導致 JAR 文件徹底不能運行。對于這種情況,本文的方法則是無能為力的。
2 .有些 JAR 程序可能除了要把“ MANIFEST.MF ”中的“ MIDlet-Name ”改成英文,還需要把“ MIDlet
如需轉載此文,請注明作者:逍遙趙。
新聞熱點
疑難解答
圖片精選