windows中不能雙擊打開jar文件的解決辦法
看此文前請保證jar包中有至少一個(gè)Main方法入口,及圖形化的界面。
并保證META-INF/MANIFEST文件中的Main-Class已經(jīng)指向之前實(shí)現(xiàn)的main方法入口。
最近硬盤壞了,于是重新安裝了OS,發(fā)現(xiàn)拷貝后的jdk或jre(未經(jīng)安裝的版本),不能打開jar文件執(zhí)行(jdk版本1.6_11),
于是在打開方式中指向了javaw程序,發(fā)現(xiàn)無效,并提示"cannot find main class", 與此同時(shí)windows把jar類型的文件關(guān)聯(lián)到了
指定的javaw程序上,上網(wǎng)找了一通,沒有人提及這個(gè)問題的解決辦法,而顯然這個(gè)問題又不是由開篇中提到的問題導(dǎo)致的。
于是在注冊表中當(dāng)前用戶配置中刪除了當(dāng)前jar類型的定義。但是重新嘗試后依然無效。
于是重新安裝了jdk,發(fā)現(xiàn)這次可以打開jar文件了,并且這次用來打開的程序從打開方式來看仍然是javaw。
比較注冊表中文件類型的定義,并沒有差別。從文件夾選項(xiàng) -> 文件類型來看終于看到了差別,
高級里面的open操作定義如下:
"C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %*
而如果我們自己選擇javaw,默認(rèn)的open操作是沒有 -jar參數(shù)的,必須手工加進(jìn)去。
我們知道java啟動jar包的參數(shù)是 -jar,但是記得以前javaw是可以直接打開jar的,不知什么時(shí)候起也需要帶有-jar參數(shù)了。
所以對于一個(gè)拷貝的綠色jre只要修改一下open操作的定義就可以解決上面的問題了。
解決了上面的問題,又產(chǎn)生了新的問題,之前選擇打開的javaw程序在打開方式中丟不掉了,比較多余,這個(gè)可以在注冊表中修改
在HKEY_CLASSES_ROOT\Applications下面找到響應(yīng)的程序刪除就可以了,原來每次用一個(gè)程序打開一個(gè)類型的文件windows都會在
注冊表中這個(gè)地方留下相關(guān)的記錄
@2008 楊一. 版權(quán)所有. 保留所有權(quán)利
posted on 2008-12-22 18:19 楊一 閱讀(3188) 評論(0) 編輯 收藏 所屬分類: Others