SpringBoot項目jar包運行


前言

終於等來了假期,也終於等來了團隊學習,考試周來的時候真的很慌張,不只是因為考試,更是因為團隊學習的中斷,學習就應該一鼓作氣,趁着精力旺盛,也趁着自己興趣在這,復習的時候就怕玩游戲,小游戲也不行,畢竟比起學習來,游戲要有很大的吸引力,對於團隊學習來說,復習周就相當於休息,一旦時間過長,就容易被轉移注意力,好在現在回到正軌了。
最近潘老師在Alice的項目上提交了一個這樣的issue:
然后來到研究生考試系統看一下這個文件:
有一說一,沒看懂,但是我感興趣的是jar包,之前在團隊匯報時就聽說過這個名詞,但是沒有接觸過,也不知道是啥,然后就試着打包和運行項目

打包

首先在POM.XML文件中要有插件:spring-boot-maven-plugin

 
 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

然后就是進入POM.XML文件所在的目錄,然后執行語句:

 
mvn clean package -Dmaven.test.skip=true

最后會出現
BUILD SUCCESS 字樣,說明打包成功,然后在target文件中會生成jar包
由圖標樣式我們可以知道,所謂的jar包就是壓縮包。
當然也可以使用命令:

 
mvn clean package

使用該命令后會進行測試,成功后打包文件。

運行項目

想要把項目運行起來,只需要一句:

 
java -jar alice-0.0.1-SNAPSHOT.jar 

(后面的jar包請根據自己系統生成的jar包名稱填寫)

jar包

JAR 文件的全稱 Java Archive File(Java 檔案文件),通常 JAR 文件是一種壓縮格式,和 ZIP 格式兼容,與 ZIP格式不同的是它 包含了一個名為 META-INF/MANIFEST.MF的清單文件

解壓jar包看一下它的結構:
(現場演示)
MANIFEST.MF文件中有如下內容:

 
Manifest-Version: 1.0 Implementation-Title: alice Implementation-Version: 0.0.1-SNAPSHOT Built-By: jincheng Implementation-Vendor-Id: com.yunzhiclub Created-By: Apache Maven 3.6.0 Build-Jdk: 1.8.0_172 Implementation-URL:  ot-starter-parent/alice 

關於創建者和版本號等信息。

打開實體文件,發現里面有如下文件:
結尾后綴均為.class

.class

Java字節碼類文件(.class)是Java編譯器編譯Java源文件(.java)產生的“目標文件”。它是一種8位字節的二進制流文件, 各個數據項按順序緊密的從前向后排列, 相鄰的項之間沒有間隙, 這樣可以使得class文件非常緊湊, 體積輕巧, 可以被JVM快速的加載至內存, 並且占據較少的內存空間(方便於網絡的傳輸)。

用jd-gui反向解析一下.class文件:
通過圖標我們可以知道,正如上面說的,.class文件是二進制文件,變量和類型放在前面,方法放在后面
我們看一下College.class存放的東西:

 
javap -v College.class 

javap命令主要用於反編譯java的class文件

查看.class文件存放的二進制流信息並且了解他們的含義,請參考此博客:
深入理解JVM之Java字節碼(.class)文件詳解

總結

打包時,項目的.java文件經過編譯器編譯后生成.class文件,然后被打成壓縮包,即jar包,當執行java -jar XXX.jar 命令時,java虛擬機再根據.class文件的內容進行編譯。


免責聲明!

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



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