【Java学习】Jar包

1.介绍

  Java里的jar包就如同zip文件一样,它是类文件和资源(图片,声音)的集合。其他任何类文件都可以导入jar包并调用其中public的方法与属性。

2.创建JAR包

jar cvf JARFILENAME file1 file2.....
//其中c代表创建新文件,f指定文件名,v输出创建时详细信息

  需要注意的是,添加到jar包里的文件必须是编译好的java文件(compiled java file)资源(resource),例如:

jar cvf Test.jar *.class image.gif test.txt

  同时,在jar里面的资源中,可以包含一个特殊的文件用来描述此jar,叫做Manifest,此文件分为很多个区,整体结构如下

Manifest-Version:1.0

Name:A.class
lines describing this file
Name:B.class
lines describing this file

  Manifest文件除了用于描述此jar文件外,最主要的功能还是用于指定可执行JAR的程序入口。当然也可用直接利用java命令来指定程序入口,如下所示:

  1)Manifest指定程序入口

  在Manifest文件中加入Main-Class: com.mycompany.mypkg.MainAppClass,然后执行命令java -jar Test.jar执行程,如下所示

//创建manifest文件,manifest文件内容请预先写好
jar cvfm Test.jar manifest.mf

//更新manifest文件
jar ufm Test.jar


//其实修改Manifest最简单的方法是将.jar后缀改为zip,然后用notepad++打开manifest文件修改

  2)java命令指定程序入口

  我们再创建jar包时,使用参数"e"来指定入口函数,如下所示:

jar cvfe Test.jar com.mycompany.mypkg.MainAppClass files to add

 

3.调用JAR中的类和资源

  调用jar里的类文件非常简单,直接使用Import命令即可【注意:defalut-package裡面的类文件是不能直接调用的,因为没有包名,以上所有制作的jar包都是将类文件放入default-package里面的】。但是调用资源的就需要使用如下格式:

InputStream steam = Test.class.getResourceAsStream("test.txt");
Scanner in = new Scanner(stream,"UTF-8");

  4.密封JAR文件

  一个完整的jar包结构如下所示:

  在我们制作完成jar之后,为了让某些包不能再增加类文件,我们将其密封,级在manifest.mf文件中加入如下内容:

Name: com/mycompany/util/
Sealed: true
//其中Name是class文件所在的路径,也是其包名

猜你喜欢

转载自www.cnblogs.com/Oliver1993/p/11247778.html