fastjar、gjar和jar等工具可帮助您手动或以编程方式构建JAR文件,而Maven和Gradle等其他工具链提供依赖项管理功能。根据我的经验,Java的众多优势之一是它能够以简洁方便的包(称为JAR或JavaArchives)交付应用程序。JAR文件使用户可以轻松地下载和启动他们想要尝试的应用程序,将该应用程序从一台计算机转移到另一台计算机(而且Java是跨平台的,因此鼓励免费共享),并且对于新程序来说很容易程序员查看JAR文件的内容以找出是什么让Java应用程序运行。创建JAR文件的方法有很多,包括Maven和Gradle等工具链解决方案,以及IDE中的一键构建功能。但是,也有独立的命令,例如jarfast、gjar和plainjar,它们可用于快速轻松地构建并演示JAR文件需要运行的内容。安装在Linux上时,您可能已经将fastjar、gjar或jar命令作为OpenJDK包或GCJ(GCC-Java)的一部分。您可以通过键入不带参数的命令来测试这些命令是否已安装:$fastjarTry'fastjar--help'以获取更多信息。$gjarjar:必须指定-t、-c、-u、-x或-ijar之一:尝试“jar--help”获取更多信息$jarUsage:jar[OPTION...][[--releaseVERSION][-Cdir]files]...尝试`jar--help'获取更多信息。我安装了所有这些命令,但你只需要一个。所有这些命令都能够构建JAR。在像Fedora这样的现代Linux系统上,输入您的操作系统提示安装它的缺失命令。或者,您可以直接从AdoptOpenJDK.net安装适用于Linux、MacOS和Windows的Java。构建JAR首先,您需要构建一个Java应用程序。为简单起见,在名为hello.java的文件中创建一个基本的“helloworld”应用程序:classMain{publicstaticvoidmain(String[]args){System.out.println("HelloJavaWorld");}}这是一个简单的应用程序,它在某种程度上淡化了在现实世界中管理外部依赖项的重要性。不过,这足以让您了解创建JAR所需的基本概念。接下来,创建清单文件。清单文件描述了JAR的Java环境。在此示例中,最重要的信息是识别主类,以便执行JAR的Java运行时知道在哪里可以找到应用程序的入口点。$mdirMETA-INF$echo"Main-Class:Main">META-INF/MANIFEST.MF编译Java字节码接下来,将Java文件编译成Java字节码。$javachello.java或者,您可以使用GCC的Java组件进行编译:$gcj-Chello.java无论哪种方式,都会生成文件Main.class:$fileMain.classMain.class:已编译的Java类数据,版本XX.Y创建JAR您拥有所有必需的组件,因此您可以创建JAR文件。我经常包含Java源代码以供好奇的用户参考,所需要的只是META-INF目录和类文件。fastjar命令使用类似于tar命令的语法。$fastjarcvfhello.jarMETA-INFMain.class或者,您可以以几乎相同的方式使用gjar,只是gjar要求您显式指定清单文件:$gjarcvfworld.jarMain.class-mMETA-INF/显现。MF或者你可以使用jar命令。请注意,此命令不需要清单文件,因为它会自动为您生成一个清单文件,但为了安全起见,我明确定义了主类:$jar--create--filehello.jar--main-class=MainMain.class测试您的应用程序:$java-jarhello.jarHelloJavaWorldEasyPackaging工具(如fastjar、gjar和jar)可帮助您手动或以编程方式构建JAR文件,而其他工具链(如Maven和Gradle)提供依赖项管理功能。一个好的IDE可能会集成这些功能中的一个或多个。无论您使用什么解决方案,Java都提供了一个简单而统一的目标来分发您的应用程序代码。
