corejava-笔记——jar

jar

1. 简介

java中有jar命令,可以将一个或多个class文件,打包到一个指定的jar文件中(xxx.jar)

例如jre中的rt.jar,就是将src.zip中的Java文代码编译成class文件后,又将这些class文件打包到jar中

jar包可以被解压,解压后可以看到所有被打包进去的class文件。

class文件打开会是乱码,可以使用十六进制的方式进行打开得到类似下图的文件

在这里插入图片描述

上图中第一行的CA FE BA BE 表示当前class文件是java语言编译而成的,这玩意叫魔数,java代码编译成的class文件中,最前面一定是这个值(当然,其他语言编译成的class文件的魔数都不一样)
魔数后面的20 20 20 34表示的则是当前class文件是哪个版本JDK编译出来的。
16进制的34等于10进制的52,52则代表JDK1.8版本,51则是JDK1.7版本,以此类推

当然,要想查看文件对应的JDK版本可以通过DOS命令javap -verbose Hello.class进行查看

2. 自定义Jar

如何将自己的class文件打成jar包?

  1. 将当前目录中的Hello.class打到a.jar这个jar包中:
    jar -cvf a.jar Hello.class
  2. 将当前目录下的Hello.class以及World.class打到a.jar这个jar包中:
    jar -cvf a.jar Hello.class World.class
  3. 将当前目录下所有class文件打到a.jar中:
    jar -cvf a.jar *.class
  4. 把当前目录下的bin文件夹里面的所有文件打包,同时包含bin目录本身:
    jar -cvf a.jar bin
  5. 把当前目录下的bin文件夹中所有文件打包,同时不包含bin
    jar -cvf a.jar -C bin .

    -C bin表示切换到bin目录下执行这个命令,注意要有bin后面的点(.)

-cvf:
c:意思是创建新的文件
v:意思是在标准输出中生成详细输出
f:意思是指定文件名

了解更多jar命令,直接在DOS下输入jar -help查看

3. 运行jar

java -jar a.jar

如果当前jar包中存放了多个class文件,则运行报错。因为这里没有指定那一个类中有程序的入口,这时需要修改jar中的配置

  1. 打开jar包,里面除了class文件还会有一个META-INF文件夹,再改文件夹下打开MANIFEST.MF文件,对该文件进行编辑
  2. 在这里插入图片描述
  3. 在该文件最底下添加Main-Class:全限定类名
    该语句就是指定程序入口,这里必须是全限定类名,如果没有指定package的话直接是类名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值