前言
终于等来了假期,也终于等来了团队学习,考试周来的时候真的很慌乱,不只是因为考试,更是因为团队学习的中断,学习就应该一鼓作气,趁着精力旺盛,也趁着本人趣味在这,温习的时候就怕玩游戏,小游戏也不行,毕竟比起学习来,游戏要有很大的吸引力,对于团队学习来说,温习周就相当于劳动,一旦工夫过长,就容易被转移注意力,好在当初回到正规了。
最近潘老师在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: https://projects.spring.io/spring-boot/#/spring-bo
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文件的内容进行编译。
本文作者:河北工业大学梦云智开发团队 张文达
发表回复