SpringBoot項目jar包運行

前言

終於等來了假期,也終於等來了團隊學習,考試周來的時候真的很慌張,不僅是由於考試,更是由於團隊學習的中斷,學習就應該一氣呵成,趁着精力旺盛,也趁着本身興趣在這,複習的時候就怕玩遊戲,小遊戲也不行,畢竟比起學習來,遊戲要有很大的吸引力,對於團隊學習來講,複習周就至關於休息,一旦時間過長,就容易被轉移注意力,好在如今回到正軌了。
最近潘老師在Alice的項目上提交了一個這樣的issue:
image.png
而後來到研究生考試系統看一下這個文件:
image.png
有一說一,沒看懂,可是我感興趣的是jar包,以前在團隊彙報時就據說過這個名詞,可是沒有接觸過,也不知道是啥,而後就試着打包和運行項目java

打包

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

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

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

mvn clean package -Dmaven.test.skip=true

image.png
最後會出現
BUILD SUCCESS 字樣,說明打包成功,而後在target文件中會生成jar包
image.png
由圖標樣式咱們能夠知道,所謂的jar包就是壓縮包。
固然也可使用命令:spring

mvn clean package

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

運行項目

想要把項目運行起來,只須要一句:網絡

java -jar alice-0.0.1-SNAPSHOT.jar

(後面的jar包請根據本身系統生成的jar包名稱填寫)
image.pngmaven

image.png

jar包

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

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

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: https://projects.spring.io/spring-boot/#/spring-bo
 ot-starter-parent/alice

關於建立者和版本號等信息。學習

打開實體文件,發現裏面有以下文件:
image.png
結尾後綴均爲.class測試

.class

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

用jd-gui反向解析一下.class文件:
image.png
經過圖標咱們能夠知道,正如上面說的,.class文件是二進制文件,變量和類型放在前面,方法放在後面
咱們看一下College.class存放的東西:

javap -v College.class

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

image.png

image.png

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

總結

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

本文做者:河北工業大學夢雲智開發團隊 張文達

相關文章
相關標籤/搜索