終於等來了假期,也終於等來了團隊學習,考試周來的時候真的很慌張,不僅是由於考試,更是由於團隊學習的中斷,學習就應該一氣呵成,趁着精力旺盛,也趁着本身興趣在這,複習的時候就怕玩遊戲,小遊戲也不行,畢竟比起學習來,遊戲要有很大的吸引力,對於團隊學習來講,複習周就至關於休息,一旦時間過長,就容易被轉移注意力,好在如今回到正軌了。
最近潘老師在Alice的項目上提交了一個這樣的issue:
而後來到研究生考試系統看一下這個文件:
有一說一,沒看懂,可是我感興趣的是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
最後會出現
BUILD SUCCESS 字樣,說明打包成功,而後在target文件中會生成jar包
由圖標樣式咱們能夠知道,所謂的jar包就是壓縮包。
固然也可使用命令:spring
mvn clean package
使用該命令後會進行測試,成功後打包文件。segmentfault
想要把項目運行起來,只須要一句:網絡
java -jar alice-0.0.1-SNAPSHOT.jar
(後面的jar包請根據本身系統生成的jar包名稱填寫)
maven
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
關於建立者和版本號等信息。學習
打開實體文件,發現裏面有以下文件:
結尾後綴均爲.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文件的內容進行編譯。
本文做者:河北工業大學夢雲智開發團隊 張文達