IDEA導出jar包后運行報錯 找不到或無法加載主類


開發工具:IDEA16

運行環境:ubuntu

問題:根據網上的Idea導出jar包的方法,將我的項目導出jar包后運行報錯:找不到或無法加載主類。
 
  為了找到這個原因,我重新搭建了一個測試例子,在src/com下新建了一個HelloWorld.java類,輸出HelloWorld。然后把它導出jar包,依然報錯:找不到或無法加載主類。
  后來打開這個jar包發現在test.jar里邊還有一個test.jar包
 
  然后我把里邊這個jar包提取出來后,運行java -jar test.jar就不會報錯了,也能正常輸出HelloWorld
 
  經過各種重復實驗,重新嘗試每一步的配置,終於發現了錯誤的地方。
  根據網上的配置,在 Project Structure --> Artifacts中,添加jar包時,選擇了copy 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包一樣。
 
  原創文章,歡迎轉載,轉載請注明出處!
  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM