这些年我们用过的jar包

也许爱情只是因为寂寞,需要找一个人来爱,即使没有任何结局


我们日常用的jar包是什么:
 

        jar包就是 Java Archive File,顾名思义,它的应用是与 Java 息息相关的,是 Java 的一种文档格式,是一种与平台无关的文件格式,可将多个文件合成一个文件。

        jar 包与 zip 包非常相似——准确地说,它就是 zip 包,所以叫它文件包。jar 与 zip 唯一的区别就是在 jar 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,该文件是在生成 jar 文件的时候自动创建的,作为jar里面的"详情单",包含了该Jar包的版本、创建人和类搜索路径Class-Path等信息,当然如果是可执行Jar包,会包含Main-Class属性,表明Main方法入口,尤其是较为重要的Class-Path和Main-Class。

        此外,值得注意的是,因为jar包主要是对class文件进行打包,而java编译生成的class文件是平台无关的,这就意味着jar包是跨平台的,所以不必关心涉及具体平台的问题。说到jar里面的文件,咱们来看看最普通的一个带有静态页面的springboot项目jar里面的内容,就会发现解压出来的jar并不简单(除了.MF以及.class文件之外,jar还能打包静态资源文件如.html、.css以及.js等项目所需的一切,这也就意味着咱们能将自己的项目打成jar,即不管是web应用还是底层框架,都能打成jar包。)

        运行jar需要一个java jdk环境 ,然后右击jar包打开方式选择java(TM)运行,也可直接通过java -jar 指令来执行的。

        有些jar不能直接运行 ,因为没有main方法入口。

        我们都知道,有的类之所以能够执行,是因为它用你有main函数,该函数是程序的入口,同理,可执行的jar包中肯定是有某个.class文件提供了main函数才使得其可执行。那么问题来了,一个jar里面可能存在多个.class文件都有main函数的情况,我怎么知道该执行哪个?其实答案非常简单,就是看前面说的MANIFEST.MF里面的Main-Class属性,它会指定函数入口。

使用jar包的优势:

        开发了一个程序以后,程序中有很多的类,如果需要提供给别人使用,发给对方一大堆源文件是非常不好的,因此通常需要把这些类以及相关的资源文件打包成一个 jar 包,把这个 jar 包提供给别人使用。

        他人在拿到我们提供的jar之后,就能方便地进行调用。而且安全。能够对JAR文件进行数字签名,只让能够识别数字签名的用户使用里面的东西。

        我们在开发的过程中也可以把自己代码的通用部分抽离出来,主键积累一些通用的util类,将其逐渐模块化,最后打成jar包供自己在别的项目或者模块中使用,同时不断打磨jar里面的内容,将其做得越来越容易理解和通用,这样的好处是除了会对你的代码重构能力以及模块抽象能力有很好的帮助之外,更是一种从长期解放你的重复工作量,让你有更多的精力去做其他事情的方式。

如何打jar包

要创建一个 JAR 文件(Java Archive),你可以使用 Java 的命令行工具 jar。以下是创建 JAR 文件的一般步骤:

  1. 编写 Java 代码:首先,你需要编写你的 Java 代码,并确保代码可以成功编译。确保你的代码中包含一个 public static void main(String[] args) 方法,因为这是可执行 JAR 文件的入口点。

  2. 编译 Java 代码:使用 javac 命令来编译你的 Java 代码。例如:javac YourClass.java这将生成一个名为 YourClass.class 的字节码文件。

  3. 创建清单文件:创建一个名为 Manifest.mf 的清单文件,该文件包含 JAR 文件的基本信息,例如主类(Main-Class)。清单文件的内容可能如下所示:Manifest-Version: 1.0
    Main-Class: YourMainClass其中 YourMainClass 应该替换为你的主类的完全限定类名。

  4. 创建 JAR 文件:使用 jar 命令来创建 JAR 文件。以下是一个示例命令:jar cvmf Manifest.mf YourJarName.jar YourClass.class  //c 表示创建 JAR 文件。

    //v 表示在控制台上显示详细信息。//m 表示包含清单文件。//f 后面跟着 JAR 文件的名称。//YourClass.class 是要包含在 JAR 文件中的类文件,可以包含多个类文件,用空格分隔。
  5. 运行 JAR 文件:现在,你可以使用 java -jar 命令来运行创建的 JAR 文件。例如:java -jar YourJarName.jar 这就是创建和运行 JAR 文件的基本步骤。确保替换上述示例中的类名和文件名以适应你的项目。如果你使用了其他依赖库,还需要在 JAR 文件中包含这些库的类文件。这可以通过在 jar 命令中包括相应的类路径来完成。

如何运行jar包

要运行一个 JAR 文件,你可以使用 java 命令,后跟 -jar 标志,然后是 JAR 文件的名称。以下是运行 JAR 文件的一般步骤:

  1. 打开命令行终端(Windows 上可以是命令提示符或 PowerShell,Unix/Linux 上可以是终端窗口)。

  2. 使用以下命令来运行 JAR 文件:

    java -jar YourJarName.jar

    其中 YourJarName.jar 应该替换为你要运行的 JAR 文件的实际名称。

  3. 按下回车键执行命令。

如果 JAR 文件包含一个主类(Main-Class),Java 将会执行该主类的 main 方法。如果 JAR 文件正确配置,并且你的 Java 运行时环境配置正确,应该会执行 JAR 文件中的 Java 应用程序。

请确保已经安装了 Java 运行时环境(JRE),并且已经设置了正确的环境变量,以便可以在命令行中运行 java 命令。如果你的 JAR 文件依赖于其他 JAR 文件或库,确保这些依赖项也位于类路径中,或者将它们包含在你的 JAR 文件中。

jar包使用的好处

JAR 包(Java Archive)是 Java 程序中常见的文件格式,具有以下几个重要的好处:

  1. 模块化和组织性:JAR 包允许将多个相关类和资源打包到一个文件中,从而更好地组织和管理代码。这有助于模块化项目,使得代码更容易维护和分发。

  2. 依赖管理:JAR 包使得管理项目依赖变得更容易。你可以将项目所需的外部库和依赖项打包成 JAR 文件,然后在你的项目中引用它们。这简化了项目的构建和部署,减少了依赖项冲突的可能性。

  3. 可移植性:JAR 包是跨平台的,因为它们包含了字节码和资源,可以在任何支持 Java 的平台上运行。这意味着你可以将 JAR 文件从一个环境移植到另一个环境而无需修改代码。

  4. 版本控制:通过使用不同版本的 JAR 包,你可以轻松管理和切换项目的不同版本。这对于测试、回退或升级应用程序非常有用。

  5. 安全性:JAR 包可以使用数字签名进行安全性验证,以确保它们没有被篡改。这有助于确保你的应用程序没有受到恶意代码注入的威胁。

  6. 资源管理:除了 Java 类文件,JAR 包还可以包含其他资源文件,如图像、配置文件和文档。这些资源可以轻松地与代码一起打包和分发。

  7. 部署简化:JAR 包使得部署 Java 应用程序变得非常简单。只需将 JAR 文件复制到目标环境,并运行它,而无需复杂的安装过程。

  8. 代码重用:JAR 包可以包含通用的类和库,可供多个项目共享和重用。这有助于提高代码的可维护性和可重用性。

总之,JAR 包是 Java 生态系统中的一个关键组成部分,它们提供了许多好处,包括代码组织、依赖管理、跨平台兼容性和安全性,使得开发、部署和维护 Java 应用程序更加容易和高效。

猜你喜欢

转载自blog.csdn.net/s_sos0/article/details/127577329