终于等来了假期,也终于等来了团队学习,考试周来的时候真的很慌张,不仅是由于考试,更是由于团队学习的中断,学习就应该一气呵成,趁着精力旺盛,也趁着本身兴趣在这,复习的时候就怕玩游戏,小游戏也不行,毕竟比起学习来,游戏要有很大的吸引力,对于团队学习来讲,复习周就至关于休息,一旦时间过长,就容易被转移注意力,好在如今回到正轨了。
最近潘老师在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文件的内容进行编译。
本文做者:河北工业大学梦云智开发团队 张文达