jar包的组成和打包运行

jar包简介

JAR(Java Archive)是一种包文件格式,通常用于将许多 Java class文件和相关元数据及资源(文本、图像等)聚合到一个文件中,应用程序就可以直接依赖jar包,方便在 Java 平台上发布应用软件或库

JAR 文件的存在的原因

  1. 组织和分发: JAR 文件提供了一种组织和分发 Java 程序的方式。它可以包含类文件、资源文件、库文件(例如第三方库或依赖的 JAR 文件)等,将这些文件打包在一个单独的文件中,便于传输、存储和共享。
  2. 模块化: JAR 文件可以作为 Java 应用程序的模块,帮助实现模块化的代码结构。通过将相关的类和资源组织在一个 JAR 文件中,可以更容易地管理应用程序的结构和依赖关系。
  3. 可执行 JAR 文件: JAR 文件中的 MANIFEST.MF 文件可以包含关于 JAR 文件的元数据(META-INF/MENIFEST.MF),其中包括指定程序入口的信息。这使得可以创建包含主类信息的可执行 JAR 文件,直接通过 java -jar 命令运行。

JAR 文件的内容

  • 字节码文件: JAR 文件中包含了编译后的 Java字节码文件,这些文件被组织成目录结构,反映了它们在包中的包名和类名。
  • 资源文件: 除了类文件外,JAR 文件还可以包含任意类型的资源文件,例如配置文件、图像、文本文件等。
  • META-INF 目录: JAR 文件中的 META-INF 目录包含了一些元数据信息,其中最常见的是 MANIFEST.MF 文件。MANIFEST.MF 文件包含了关于 JAR 文件的元信息,包括版本、作者、入口点(main函数)等。
  • 库文件: JAR 文件中可以包含其他 JAR 文件,通常用于包含项目所依赖的第三方库。这有助于简化项目的依赖管理。

通过将所有这些文件打包在一个 JAR 文件中,开发者可以方便地将整个应用程序或模块分发给其他开发者或用户,确保了项目的一致性和易于管理。 JAR 文件在 Java 生态系统中广泛应用,尤其是在构建和部署 Java 应用程序时。

jar不仅仅只能表示库文件,也能表示运行程序,可以看到jar的类型是“Executable Jar File”
在这里插入图片描述

jar包的结构

在这里插入图片描述
在这里插入图片描述
TIPS:包名和jar包中的路径名是匹配的

源代码中的package就是跟代码的存放路径有关:

MANIFEST文件内容

在这里插入图片描述

该manifest文件中没有写明main-class(入口点),所以没法执行。

如何从java文件到JAR

将 Java 源代码文件打包成 JAR(Java Archive)文件通常是通过 Java 的打包工具 jar 来完成的。以下是一些常见的步骤:

  1. 编写 Java 源代码:

    • 使用文本编辑器或集成开发环境(IDE)编写 Java 源代码。
    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello, World!");
        }
    }
    
  2. 编译 Java 源代码:

    • 使用 Java 编译器(通常是 javac 命令)将 Java 源代码编译成字节码文件(.class 文件)。
    javac YourJavaFile.java
    
  3. 创建清单文件(Manifest File):

    • 创建一个包含 JAR 文件的清单文件MANIFEST.MF,清单文件描述了 JAR 文件的结构和元信息。可以手动创建清单文件,也可以使用默认的清单文件。
    Manifest-Version: 1.0
    Main-Class: HelloWorld
    

    其中,HelloWorld是包含 main 方法的主类(入口点),如果是有包名的话,需要带上包名。

  4. 使用 jar 命令创建 JAR 文件:

    • 在命令行中使用 jar 命令将编译后的字节码文件和清单文件打包成 JAR 文件。
    jar cvmf MANIFEST.MF HelloWorld.jar -C YourClassFilesDirectory 
    

    YourClassFilesDirectory 是包含编译后的 .class 文件的目录。

    • 如果只有一个文件(HelloWorld.class),就可以直接
    jar cvmf MANIFEST.MF HelloWorld.jar HelloWorld.class
    
    • 如果使用默认的清单文件,可以省略 -m 参数:
    jar cvf YourJarFile.jar -C YourClassFilesDirectory
    
  5. 验证 JAR 文件:

    • 可以使用 jar 命令验证创建的 JAR 文件:
    jar tf HelloWorld.jar
    

    这将列出 JAR 文件中包含的所有文件:
    在这里插入图片描述

  6. 执行jar文件:
    在这里插入图片描述
    通过这些步骤,你就可以将 Java 源代码文件打包成 JAR 文件,方便分发和执行。

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值