1. 程式人生 > >windows下的java項目打jar分別編寫在windows與linux下運行的腳本( 本人親測可用!)

windows下的java項目打jar分別編寫在windows與linux下運行的腳本( 本人親測可用!)

總結 有一個 ack unzip next 技術 方法 MF .bat

前言:

最近公司做了一個工具,要將這個工具打包成一個可運行的程序,編寫start.bat和start.sh在windows和linux下都可以運行。

在網上找了很多資料,最後終於找到一個可靠的資料,記錄下來,分享給大家,也算是自己的一個總結。

吃水不忘挖井人,感謝這位老哥的文章:https://blog.csdn.net/u011752272/article/details/78560715

不多bb直接開始幹活!

一、項目的結構

由於只是測試,裏面的東西不復雜,可以用很簡單來說明,創建的是maven項目,當然普通的java項目也是可以的。

技術分享圖片

二、在本地跑通確認無誤後打成jar放到本地,具體步驟為:

2.1在桌面創建一個名為zztest的文件夾。

右擊項目-->Export-->Java-->JAR file後點擊next,如下圖:

技術分享圖片

2.2  .settings  .classpath  .project  這三個文件不要勾選,千萬不要勾選!

  選擇生成jar包的路徑為2.1創建的zztest目錄後點擊next,如下圖:

技術分享圖片

2.3什麽都不用動,繼續點擊next,如下圖:

技術分享圖片

2.4點擊Browse...設置main方法運行的主類後點擊ok後點擊finish,如下圖:

如果有警告的話也不用理,直接確定即可!

技術分享圖片

三、查看jar

在zztest中已經存在名為test01.jar的jar包,如下圖:

技術分享圖片

四、解壓(如果項目中有外部jar的引用需要在此添加配置,如果沒有請直接忽略掉這一步進入第六步!!!

)

右擊直接解壓這個test01.jar到當前文件夾,如下圖:

技術分享圖片

五、配置MANIFEST.MF文件(如果項目中有外部jar的引用需要在此添加配置,如果沒有請直接忽略掉這一步進入第六步!!!)

5.1

打開META-INF下的MANIFEST.MF文件

Class-path後面有一個空格請註意,空格後面緊跟jar包的路徑,其中lib目錄與src目錄同級

如下圖:

技術分享圖片

如果有由於本文沒有測試引用多個jar的情況,所以要引用多個jar請嘗試:

Class-path: lib/第一個jar

Class-path: lib/第N個jar

5.2將修改過的MANIFEST.MF替換掉jar包裏面META-INF下的MANIFEST.MF

六、編寫start.bat腳本

在zztest目錄下創建一個文本文件,在裏面增加一段代碼,後保存,名字為start.bat後保存,確定保存,如下圖:

技術分享圖片

最終的文件結構如下圖(如果項目中沒有引用外部的jar,沒有執行第四步,第五步,只會有一個test01.jar與start.bat):

技術分享圖片

雙擊start.bat就可以運行,結果如下圖。至此windows下的就已經結束!

技術分享圖片

七、Linux下的start.sh啟動腳本編寫

本文使用的是SecureCRT與SecureFX操作linux終端

7.1操作SecureSecureFX將jar放入指定文件夾如下圖:

技術分享圖片

7.2輸入unzip test01.jar將jar解壓(一定要解壓,才能夠運行,我也不知道解壓的原理......),如下圖:

技術分享圖片

7.3在SecureCRT命令行中創建一個start.sh腳本並在裏面指定執行main方法所在的java類

vi start.sh    註釋:創建一個名字為start.sh的腳本,結果如下圖:

技術分享圖片

按"i"進入編輯模式編輯文件如下圖所示:

#!bin/bash

java -Xms50m -Xmx250m com.zhanzhuang.windows_and_linux.WAL

exit

技術分享圖片

然後按一下esc

之後按住shift後加:

可以松手了,輸入wq點擊回車即可

------------------------------------------------------------------------------

光標就變成如下圖所示

技術分享圖片

7.4  sh start.sh執行腳本結果如下圖所示

技術分享圖片

至此,linux下的步驟也講解完畢。感謝各位小夥伴收看!

如果在linux下運行的工程裏面有引用的外部jar包則start.sh腳本內容如下

技術分享圖片

windows下的java項目打jar分別編寫在windows與linux下運行的腳本( 本人親測可用!)