eclipse中將項目打包成jar的兩種方法,及其問題與解決方法

来源:http://www.cnblogs.com/tianyanzhi/archive/2017/12/19/8067239.html
-Advertisement-
Play Games

第一種:利用eclipse中自帶的export功能 第一種方法分兩種情況先來看第一種情況:沒有引用外部jar的項目打包 步驟一:右鍵點擊項目選擇導出(export),選擇java>jar文件(不是選擇可運行jar文件) 步驟二:選擇你要導出的項目以及文件,指定文件導出路徑。連續點擊兩個下一步後到第四 ...


第一種:利用eclipse中自帶的export功能

第一種方法分兩種情況先來看第一種情況:沒有引用外部jar的項目打包

步驟一:右鍵點擊項目選擇導出(export),選擇java>jar文件(不是選擇可運行jar文件)

步驟二:選擇你要導出的項目以及文件,指定文件導出路徑。連續點擊兩個下一步後到第四步。

步驟三:選擇主類。

按照以上步驟即可完成對一個不引用外部jar項目的打包。

 

 

第二種情況:沒有引用外部jar的項目打包

 

當我們引用了外部jar後,使用eclipse自帶的export打包略顯繁瑣。

步驟一:準備主清單文件 “ MAINFEST.MF ”,放在項目的文件夾下麵。

MAINFEST.MF是jar的配置文件,第一行定義版本,第二行指出外部jar的路徑,第三行是主類指示,第四行是空行。

 

1 Manifest-Version: 1.0
2 Class-Path: lib/RXTXcomm.jar
3 Main-Class: com.main.Client
4

 

值得註意的是,MAINFEST.MF編寫需要嚴格規範,稍有不慎將會導致jar執行無效

 

1 第一行不能空,行與行之間不能有空行,每一行的最後一個字元不能是空格
2 最後一行一定是空行
3 每個屬性的名稱和值之間(冒號後面)一定要有空格
4 文件的每一行都不能超過72個位元組(一般是70個ASCII字母加上回車換行符);如果72個位元組不夠用,則另起一行並以空格開頭:以空格開頭的行都被視為前一行的續行。

 

詳細規則這篇文章有講到 MANIFEST.MF文件編寫的註意事項

步驟二:與沒有外部jar的項目一樣,像上面那樣先執行到步驟三,不同的是要選著現有的清單,然後點擊完成。

 

 

以上就是第一種方法的兩種情況,至此,我們已經可以生成jar包了。(如何運行jar文件?點擊 這裡

 

 第一種:利用eclipse插件Fat jar打包jar

 步驟一:先給eclipse安裝好Fat jar插件

Fat jar 更新站點:  http://kurucz-grafika.de/fatjar

 

 

待文件載入出來後點擊全部選中,一直下一步知道完成,會提示重啟,安裝完成。(Fat jar安裝報錯?點擊 這裡

步驟二:右鍵點擊項目名稱,會看到build fat jar,點擊

 

 

 

步驟三:配置jar的存放位置以及main類。

紅框內為必填,main-class點擊browse選擇主類。(無法點擊browse?點擊 此處 查看解決方法)

 

 

步驟四:選擇要打包的文件以及外部jar,點擊完成。

 

 

至此,我們完成了用fat jar插件打包含有外部jar的項目工程。

 

 

 中途可能遇到的問題以及解決方法

 問題一:打包好jar 文件後如何運行?

解決方法:

第一種方法:cmd下直接鍵入Java -jar xxx.jar  開始運行。(可能需要切換盤符與文件夾,方法點 這裡

 

(如圖是放在C盤用戶>chen下麵的jar)

 

第二種方法:新建一個批處理文件,內容:Java -jar xxx.jar。放在與jar包同一個文件夾下麵即可,然後雙擊運行查看效果。

 

 

 

問題二:安裝Fat jar提示出錯怎麼辦?

解決方法:

在eclipse中

Help -> Install New Software... -> Work with

-> 選擇“The Eclipse Project Updates - http://download.eclipse.org/eclipse/updates/4.7”

-> 勾選"Eclipse Tests,tools, Examples, and Extras" 下的 "Eclipse 2.0 Style Plugin Support"

 

安裝完後再安裝Fat jar即可

 

 問題三:為什麼我的main-class無法browse文件?(猜測可能有eclipse與Fat jar的版本相容問題)

 解決方法:

先用eclipse自帶的export查看main-class名字(export方法如 上面),再複製粘貼填下去繼續步驟。

一般main-class為 包名.主類名 ,可能不帶Java、main等尾碼

 

 

 

 

註:文中所用到的軟體及版本如下

eclips oxygen with官譯插件

jdk 9

Fat jar插件

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本篇主要是來分享從頭開始搭建一個dubbo+zookeeper平臺的過程,其中會簡要介紹下dubbo服務的作用。 首先,看下一般網站架構隨著業務的發展,邏輯越來越複雜,數據量越來越大,交互越來越多之後的常規方案演進歷程。 其次,當服務越來越多之後,我們需要做哪些服務治理? 最後,是dubbo的架構圖 ...
  • 1、前言 PHP加密方式分為單項散列加密,對稱加密,非對稱加密這幾類。 像常用的MD5、hash、crypt、sha1這種就是單項散列加密,單項散列加密是不可逆的。 像URL編碼、base64編碼這種就是對稱加密,是可逆的,就是說加密解密都是用的同一秘鑰。 除此外就是非對稱加密,加密和解密的秘鑰不是 ...
  • module定義 對於可復用的函數集,可以對其進行分組,整合到一個或者若幹個.py文件中,而在python中,一個.py文件就叫做一個模塊。變數,函數。 module註意點 為了避免命名衝突,python中引入目錄組織的方式,這裡稱之為包(package) 每個包下都會有一個__init__.py文 ...
  • 一、Java開發環境概述 1、JDK:Java開發工具包(Java Development Kit),包括java編譯器、java運行時環境和常用的類庫 2、JRE:Java運行時環境(Java Runtime Environment) 二、跨平臺特性 1、平臺指的是操作系統(Windows,Lin ...
  • 編者按:README:此代碼為用戶登陸界面,添加了尋求幫助選項。1.學習了基本數據類型,string, int,以及while迴圈,continue, break, if, elif, else條件語句,“x".format(x)變數替代2.上網搜的dictionary用法,由於用的是python3 ...
  • 學而不思則罔,思而不學則殆。 mybatis 增刪改查,用到了MyEclipse中自帶的Junit4做單元測試,沒啥難度,作為練習。關於jar包和目錄結構請參考上一篇,這裡直接上代碼。 下一篇會寫關於配置文件優化,聯合查詢,以及使用註解的方式,客官們不要著急! ...
  • IO位元組輸入輸出流 OutputStream:位元組輸出流 該抽象類是所有位元組輸出流的超類; 定義了一些共性的成員方法: 1.寫入一個位元組 2.寫入位元組數組 3.寫入位元組數組的一部分 4.刷新輸出流,並強制寫出所有緩衝的輸出位元組 5.關閉輸出流並釋放與之有關的所有系統資源 FileOutputStre ...
  • python 介紹 一、簡介 Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),是一種廣泛使用的高級編程語言,屬於通用型編程語言,由Guido van Rossum 創造,第一版發佈於 1991 年。作為一種解釋型語言,Python 的設計哲學強調代碼的可讀性和簡潔的語法 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...