{一}動機
最近自己寫了個小應用,用於生成子系統樹需要的配置信息,打包為可執行jar發給其他同事使用時雙擊jar包提示“could not find the main class”.
首先當然要檢查一下JRE環境等,經過一番折騰整理如下幾項注意點(首先說明一下是在windows7):
{二}問題分析
{1}確認jar輸出方式
確認jar輸入方式是不是不小心選錯了,直接在netbeans中輸出可執行jar,檢查之后不存在此問題;
{2}確認jar是否可執行
正確配置java環境變量后,在控制台執行java -jar xxx.jar 是否正常運行,如果不能正常運行說明jar包有問題;
問題一般是沒有指定main方法入口,具體的方法是修改jar包內目錄META-INF下的MANIFEST.MF文件,看是否有Main-Class屬性,並且對應的類路徑是否正確。
{3}確認文件打開方式
由於機子上裝了壓縮軟件,jar包被壓縮軟件所關聯,導致雙擊jar包無法運行,解決辦法當然是改變打開方式:
將默認打開方式改為jre/bin目錄下的javaw.exe
{4}修改windows注冊表(這一點百度一下就有的,整理在此處備用)
由於文件打開類型配置的問題,導致雙擊jar包出現找不到main函數,該類問題不管是xp,還是Win7比較統一
的解決辦法是修改關聯程序的注冊表,修改方法如下
注意:"C:\Program Files\Java\jre6\bin\javaw.exe"應為你所裝的javaw.exe的實際路徑
注冊表項的路徑為:
\HKEY_CLASSES_ROOT\Aplications\javaw.exe\shell\open\command
在此路徑下有一默認鍵值, 不正常的情況下, 鍵值是:"C:\Program Files\Java\jre6\bin\javaw.exe" "%1"
將鍵值改為"C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1"
{三}經過上述分析,終於通過修改注冊表時候解決問題。
