jar為什麼找不到主類
⑴ Eclipse生成JAR包後,雙擊找不到主類
你的問題主要是沒有找到主類入口:
可用以下方法解決:
1.首先保證你的工程中至少有一個包含Main函數
2.選擇你的工程右鍵導出,選擇java下的runable jar file
3.然後點擊next後出來選擇主類的界面,和生成jar的名稱。
這時需要在lanch configuration處選擇你的主類,並export destination處填寫生成jar的名稱。其他保持默認.點擊finish,就生成可運行的jar文件了。雙擊就可以運行了。
4.注意,如果你這個程序是圖形界面的話,效果可以直接看見。如果在控制台輸出一些東西,這樣話會沒有反應。如果沒有報錯,就表示運行成功。
⑵ 運行java文件顯示找不到或無法載入主類怎麼解決
clean 重新build 或者讓clean package 用maven打包,如果復雜點是第三方jar找不到 ,可能是未下載或未下載完全,具體分析,可以採納私聊
⑶ jar 打包後運行無法載入主類
為了找到這個原因,我重新搭建了一個測試例子,在src/com下新建了一個HelloWorld.java類,輸出HelloWorld。然後把它導出jar包,依然報錯:找不到或無法載入主類。
後來打開這個jar包發現在test.jar里邊還有一個test.jar包
然後我把里邊這個jar包提取出來後,運行java -jar test.jar就不會報錯了,也能正常輸出HelloWorld
經過各種重復實驗,重新嘗試每一步的配置,終於發現了錯誤的地方。
根據網上的配置,在 Project Structure --> Artifacts中,添加jar包時,選擇了 to the out directory and link via manifest
備註:我參考的Idea打jar包的方法鏈接是:http://www.cnblogs.com/blog5277/p/5920560.html
他說:
選中第一個的話,打完包後是一個jar包
選中第二個的話,打完包後是一個jar包,外帶你項目所用的jar包
如果選擇了第二個,在下一步的配置中,就會出現兩個test.jar。可以看到,上一步驟生成了一個test.jar,並且外邊的test.jar還需要再重新創建一個MANIFEST.MF文件
經過測試,即使我創建外邊的MANIFEST.MF文件時,把裡面的test.jar包打進去,依然會報錯:找不到或無法載入主類。
綜上所訴, 我又嘗試在最開始選擇配置的時候,如果選擇extract to the target JAR(提取到目標jar包) 這個選項,那麼對於我這個測試項目就完全沒問題了,生成的test.jar包里包含MANIFEST.MF文件,並且這個包里不會再有其他的jar包了,就沒有問題了
但是如果我生成的jar包,需要引用其他的jar包,需要在下一步,Class Path欄裏手動輸入引入的jar包。
至於這里的classpath如何填寫,相當於在之前錯誤用法時生成的META-INF/MANIFEST.MF文件里所引用的jar包一樣。