文章目录

  • 一、概念
  • 二、示例


一、概念

当开发者为客户开发出了一套 Java 类之后,肯定要把这些类交给用户使用,但是如果所有的类直接通过 *.class 的格式给用户,会比较麻烦,所以一般情况下会将这些 *.class 文件压缩车一个文件交付给客户使用,那么这样的文件就称为 jar 文件(Java Archive File)。

如果要想生成 jar 文件,直接使用 JDK 中 bin 目录里的 jar.exe 就可以将所有的类文件进行压缩,此命令是随 JDK 一起安装的,直接在命令行中输入 jar,即可看到此命令的提示界面

Java中打jar包的方法 java打jar包命令_java


当用户得到一个 jar 文件后,可以通过设置 classpath 的方式在系统中注册号此 jar 文件,以供程序使用。

jar 命令主要使用的参数如下:

C:创建新的文档
V:生成详细的输出信息
F:指定存档的文件名

二、示例

定义一个简单类

package a.b.c.demo;

public class Test{
    public class Test{
        public String getInfo(){
            return "This is a test !!!";
        }
    }
}

进行编译

Java中打jar包的方法 java打jar包命令_Test_02


编译成功

Java中打jar包的方法 java打jar包命令_Java_03


将生成的 a 文件夹打包,命名为 my.jar

Java中打jar包的方法 java打jar包命令_Java_04


打包成功

Java中打jar包的方法 java打jar包命令_Java中打jar包的方法_05


这个文件可以直接使用解压软件打开此文件,如果想要使用此文件,需要设置 classpath:

set classpath = .;G:\Java\Primary_study\my.jar

这设置了两个 classpath 目录,一个是从当前所在的文件夹中查找,另外一个就是刚压缩好的*.jar 文件

Java中打jar包的方法 java打jar包命令_jar_06


将测试生成的 Test.class 连同包一起删掉,在下面的测试类中调用该 jar 文件,看是否可用

//该文件和 Test 文件不在同一目录下
import a.b.c.demo.Test;

public class root {
    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.getInfo());
    }
}

Java中打jar包的方法 java打jar包命令_Java中打jar包的方法_07


将该 jar 包解压后,包内存在一个 META-INF 的文件夹,文件夹内存在一个 MANIFEST.MF 的文件,这个文件就是 jar 文件的清单文件

Java中打jar包的方法 java打jar包命令_Test_08


如果需要将一个 jar 文件解压缩,直接输入 “jar-xf jar文件名称” 即可