jar包是什么
【Java】class.jar和sources.jar及javadoc.jar三种jar包

【Java】class.jar和sources.jar及javadoc.jar三种jar包⼀、普及jar包知识 例如(举例⼦解释)类⽂件(.class) test-java-1.0-SNAPSHOT.jar⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar资源包(code) test-java-1.0-SNAPSHOT-sources.jar⼆、使⽤⽅法1.类⽂件(.class) test-java-1.0-SNAPSHOT.jar 反编译,最暴⼒直接的⽅法,将jar包拖进IDEA⾥查看2.⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar 解压该⽂件,打开index.html查看3.资源包 test-java-1.0-SNAPSHOT-sources.jar 拖进IDEA直接查看⼆、⽣成⽅法1.类⽂件(.class) test-java-1.0-SNAPSHOT.jar 直接使⽤maven打包⽣成即可2.⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar 使⽤ maven-javadoc-plugin 插件⽣成javadoc.jar3.资源包 test-java-1.0-SNAPSHOT-sources.jar 使⽤ maven-source-plugin 插件⽣成sources.jar完整pom⽂件如下:1<?xml version="1.0" encoding="UTF-8"?>2<project xmlns="/POM/4.0.0"3 xmlns:xsi="/2001/XMLSchema-instance"4 xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">5<modelVersion>4.0.0</modelVersion>67<groupId>com.test</groupId>8<artifactId>test-java</artifactId>9<version>1.0-SNAPSHOT</version>10<dependencies>11<dependency>12<groupId>junit</groupId>13<artifactId>junit</artifactId>14<version>4.12</version>15<scope>compile</scope>16</dependency>17</dependencies>1819<build>2021<plugins>22<plugin>23<!-- Maven 编译插件24指定maven编译的jdk版本,如果不指定,25 maven3默认⽤jdk 1.5 maven2默认⽤jdk1.3 -->26<groupId>org.apache.maven.plugins</groupId>27<artifactId>maven-compiler-plugin</artifactId>28<version>3.8.1</version>29<configuration>30<!-- ⼀般⽽⾔,target与source是保持⼀致的,但是,有时候为了让程序能在其他版本的jdk中运⾏(对于低版本⽬标jdk,源代码中不能使⽤低版本jdk中不⽀持的语法),会存在target不同于source的情况 --> 31<source>1.8</source><!-- 源代码使⽤的JDK版本 -->32<target>1.8</target><!-- 需要⽣成的⽬标class⽂件的编译版本 -->33<encoding>UTF-8</encoding><!-- 字符集编码 -->34<verbose>true</verbose>35<showWarnings>true</showWarnings>36<fork>true</fork><!-- 要使compilerVersion标签⽣效,还需要将fork设为true,⽤于明确表⽰编译版本配置的可⽤ -->37<executable><!-- path-to-javac --></executable><!-- 使⽤指定的javac命令,例如:<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->38<compilerVersion>1.3</compilerVersion><!-- 指定插件将使⽤的编译器的版本 -->39<meminitial>128m</meminitial><!-- 编译器使⽤的初始内存 -->40<maxmem>512m</maxmem><!-- 编译器使⽤的最⼤内存 -->41<!-- <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument><!– 这个选项⽤来传递编译器⾃⾝不包含但是却⽀持的参数选项 –>-->42</configuration>43</plugin>4445<!-- ⽣成javadoc⽂档包的插件 -->46<plugin>47<groupId>org.apache.maven.plugins</groupId>48<artifactId>maven-javadoc-plugin</artifactId>49<version>3.2.0</version>50<executions>51<execution>52<id>attach-javadocs</id>53<goals>54<goal>jar</goal>55</goals>56</execution>57</executions>58</plugin>5960<!-- ⽣成sources源码包的插件 -->61<plugin>62<groupId>org.apache.maven.plugins</groupId>63<artifactId>maven-source-plugin</artifactId>64<version>3.2.1</version>65<configuration>66<attach>true</attach>67</configuration>68<executions>69<execution>70<!-- 在package阶段之后会执⾏源代码打包 -->71<phase>package</phase>72<goals>73<goal>jar-no-fork</goal>74</goals>75</execution>76</executions>77</plugin>78</plugins>79</build>8081</project>配置好插件后,使⽤maven package命令既能在target⽬录中查看到三个jar包 命令:mvn package如果要把三种jar包安装到本地仓库 命令:mvn install如果要把三种jar包发布到远程仓库 命令:mvn deploy。
java开发常用jar包

java开发常用jar包mail.jar与activation.jar里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的commons-beanutils.jarApache Commons包中的一个,包含了一些Bean工具类类。
必须使用的jar包。
commons-collections.jarApache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大commons-lang.jarApache Commons包中的一个,包含了一些数据类型工具类,是ng.*的扩展。
必须使用的jar包。
commons-logging.jar:Apache Commons包中的一个,包含日志功能commons-io.jarApache Commons包中的一个,java.io.*的扩展,输入输出,支持文件上传commons-fileupload.jarApache Commons包中的一个,是一个通过Http接收上传的文件并处理结果文件的库dom4j-1.4.jar 和jaxen-1.1.1.jar是一个Java的XML API,类似于jdom,用来读写XML文件的。
Hibernate使用dom4j解析XML配置文件和XML映射元文件。
必需的。
ehcache-1.2.jarHibernate可以使用不同cache缓存工具作为二级缓存。
EHCache是缺省的cache缓存工具。
如果没有其它的可选缓存工具,则为必需的。
hibernate3.jarhibernate3的核心类库。
itext.jar是用于生成PDF文档的一个java类库。
通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
iTextAsian.jaritext中关于亚洲编码的类库,在这里用于中文字体的输入。
jar包和module模块

jar包和module模块从Java 9开始,JDK⼜引⼊了模块(Module)。
在Java 9之前,⼀个⼤型Java程序会⽣成⾃⼰的jar⽂件,同时引⽤依赖的第三⽅jar⽂件,⽽JVM⾃带的Java标准库,实际上也是以jar⽂件形式存放的,这个⽂件叫rt.jar,⼀共有60多M。
jar只是⽤于存放class的容器,它并不关⼼class之间的依赖。
从Java 9开始引⼊的模块,主要是为了解决“依赖”这个问题。
如果a.jar必须依赖另⼀个b.jar才能运⾏,那我们应该给a.jar加点说明啥的,让程序在编译和运⾏的时候能⾃动定位到b.jar,这种⾃带“依赖关系”的class容器就是模块。
为了表明Java模块化的决⼼,从Java 9开始,原有的Java标准库已经由⼀个单⼀巨⼤的rt.jar分拆成了⼏⼗个模块,这些模块以.jmod扩展名标识,可以在$JAVA_HOME/jmods⽬录下找到它们:java.base.jmodpiler.jmodjava.datatransfer.jmodjava.desktop.jmod..这些.jmod⽂件每⼀个都是⼀个模块,模块名就是⽂件名。
例如:模块java.base对应的⽂件就是java.base.jmod。
模块之间的依赖关系已经被写⼊到模块内的module-info.class⽂件了。
所有的模块都直接或间接地依赖java.base模块,只有java.base模块不依赖任何模块,它可以被看作是“根模块”,好⽐所有的类都是从Object直接或间接继承⽽来。
把⼀堆class封装为jar仅仅是⼀个打包的过程,⽽把⼀堆class封装为模块则不但需要打包,还需要写⼊依赖关系,并且还可以包含⼆进制代码(通常是JNI扩展)。
此外,模块⽀持多版本,即在同⼀个模块中可以为不同的JVM提供不同的版本。
Java 9引⼊的模块⽬的是为了管理依赖;使⽤模块可以按需打包JRE;使⽤模块对类的访问权限有了进⼀步限制。
ssm整合中jar包作用介绍

ssm整合中jar包作用介绍ssm整合中jar包作用介绍Hiberna te Jar:1、hiberna te3.jar,这个是hibe rnate3.0的核心jar包,没的选,像我们常用的S ession,Query,Transac tion都位于这个jar文件中,必要。
2、cglib-2.1.3.jar,CGLIB库,H iberna te用它来实现PO字节码的动态生成,非常核心的库,必要。
3、asm.jar ASM字节码库如果使用“cglib”则必要,必要4、asm-attrs.jar ASM字节码库如果使用“cglib”则必要,必要5、ehcache.jar EHCache缓存如果没有其它缓存,则必要,必要6、antlr.jar ANother Tool for Language Recognition是一个工具,必要7、jta.jar JTA规范,当Hibern ate使用J T A的时候需要,不过App Server都会带上,所以也是多余的。
但是为了测试方便建议还是带上。
必要8、commons-logging.jar ApacheCommons包中的一个,包含了日志功能,必须使用的ja r包。
必要9、commons-collect ions.jar ApacheCommons包中的一个,包含了一些Ap ache开发的集合类,功能比java.util.*强大。
必要10、dom4j.jar 是一个Java的XML API,类似于jdom,用来读写XML文件的。
Hiberna te 用它来读写配置文件。
必要上面的就是Hibernat e的核心ja r包,是配置ssh架构中必须的,下面这些就是可选的了。
=========================================================version check.jar 版本检查可选swarmca che.jar 可选jboss-cache.jar TreeCac he可选jgroups.jar 可选xalan.jar, xerces.jar, xml-apis.jar Xerces是XML解析器,Xalan是格式化器,xml-apis实际上是JAXP。
常见jar包详解

常见jar包详解jar包⽤途axis.jar SOAP引擎包commons-discovery-0.2.jar⽤来发现、查找和实现可插⼊式接⼝,提供⼀些⼀般类实例化、单件的⽣命周期管理的常⽤⽅法.jaxrpc.jar Axis运⾏所需要的组件包saaj.jar创建到端点的点到点连接的⽅法、创建并处理SOAP消息和附件的⽅法,以及接收和处理SOAP错误的⽅法. wsdl4j-1.5.1.jar Axis运⾏所需要的组件包activation.jar JAF框架的jar包annotations-api.jar使⽤注解所需jarant.jar⽤于⾃动化调⽤程序完成项⽬的编译,打包,测试等aopalliance-1.0.jar⽀持Spring AOPasm-2.2.3.jar ASM字节码库asm-commons-2.2.3.jar ASM字节码库asm-util-2.2.3.jar Java字节码操纵和分析框架aspectjrt.jar处理事务和AOP所需的包aspectjweaver.jar处理事务和AOP所需的包axiom-api-1.2.7.jar Axis 对象模型axiom-impl-1.2.7.jar Axis 对象模型bcprov-jdk15-140.jar基于java1.5 的加密算法实现bfmclientmodel.jar使⽤WebSphere所需jar包bpcclientcore.jar使⽤WebSphere所需jar包bpe137650.jar提供远程访问BPE容器的实现。
bsh-2.0b4.jar解决负载逻辑运算c3p0-0.9.0.jar开放源代码的JDBC连接池cglib-nodep-2.1_3.jar Spring中⾃动代理所需jar包cobertura.jar测量测试覆盖率commons-beanutils-1.7.0.jar动态的获取/设值Java Bean的属性commons-chain-1.1.jar实现责任链设计模式的Java 类库commons-codec-1.3.jar⽤来处理常⽤的编码⽅法的⼯具类包,例如DES、SHA1、MD5、Base64等等commons-collections-3.1.jar对标准java Collection的扩展commons-collections.jar对标准java Collection的扩展commons-digester-1.8.jar⽤于处理struts-config.xml配置⽂件commons-fileupload-1.1.1.jar struts上传⽂件commons-httpclient-3.1.jar⽤来简化HTTP客户端与服务器端进⾏各种通信编程实现commons-io-1.1.jar针对java.io.InputStream和Reader进⾏了扩展commons-lang-2.4.jar对ng.*的扩展commons-logging-1.1.1.jar⽇志包commons-pool-1.3.jar实现对象池化框架commons-validator-1.3.1.jar⽤来把验证规则程序提取出来,以供重复使⽤db2jcc.jar java连接DB2所需jardb2jcc_license_cu.jar java连接DB2所需jardom4j-1.6.1.jar解析XMLehcache-1.2.4.jar hibernate的⼆级缓存如果⽤ehcache的时候需要此jar包emf.jar基于Eclipse的模型框架ezmorph-1.0.6.jar使⽤JSON所需的jar包FastInfoset-1.2.2.jar使⽤WebService所需的jar包freemarker-2.3.8.jar Strus2⽀持的⼀种表现层框架geronimo-activation_1.1_spec-1.0.2.jar Apache Geronimo所带jar包,geronimo-annotation_1.0_spec-1.1.1.jar Apache Geronimo所带jar包geronimo-javamail_1.4_spec-1.3.jar Apache Geronimo所带jar包geronimo-jaxws_2.1_spec-1.0.jar Apache Geronimo所带jar包geronimo-jaxws_2.1_spec-1.0.jar Apache Geronimo所带jar包geronimo-jms_1.1_spec-1.1.1.jar Apache Geronimo所带jar包geronimo-servlet_2.5_spec-1.2.jar Apache Geronimo所带jar包geronimo-stax-api_1.0_spec-1.0.1.jar Apache Geronimo所带jar包hibernate3.jar Hibernate3的核⼼jar包htmclientmodel.jar使⽤WebSphere所需jar包jakarta-oro.jar⼀套⽂本处理⼯具,提供per15.0兼容的表达式,AWK-like表达式,Glob表达式。
jar包解压和压缩

jar包解压和压缩JAR ⽂件就是Java Archive ( Java 档案⽂件),它是 Java 的⼀种⽂档格式。
JAR ⽂件⾮常类似 ZIP ⽂件准确的说,它就是 ZIP ⽂件,所以叫它⽂件包。
JAR ⽂件与 ZIP ⽂件唯⼀的区别就是在 JAR ⽂件的内容中,多出了⼀个META-INF/MANIFEST.MF ⽂件,这个⽂件是在⽣成 JAR ⽂件的时候⾃动创建的(也可以⾃⾏创建)1. jar包还原Soring boot 项⽬jar包解压之后修改⽂件之后在不依靠开发⼯具的情况下重新压缩jar包打包命令如下:jar -cvf0M xxx.jar BOOT-INF/ META-INF/ org/具体操作[admin@custmer-development-d apps_other]$ lltotal 20736-rw-rw-r--. 1 admin admin 21224413 Nov 18 10:36 alert-0.0.1-SNAPSHOT.jardrwxr-xr-x. 4 admin admin 67 Nov 18 10:35 BOOT-INFdrwxr-xr-x. 3 admin admin 36 Nov 18 10:35 META-INFdrwxr-xr-x. 3 admin admin 28 Feb 1 1980 org[admin@custmer-development-d apps_other]$ jar -cvf0M alert.jar BOOT-INF/ META-INF/ org/[admin@custmer-development-d apps_other]$ lltotal 60256-rw-rw-r--. 1 admin admin 21224413 Nov 18 10:36 alert-0.0.1-SNAPSHOT.jar-rw-r--r--. 1 admin admin 19095463 Nov 20 18:27 alert.jardrwxr-xr-x. 4 admin admin 67 Nov 18 10:35 BOOT-INFdrwxr-xr-x. 3 admin admin 36 Nov 18 10:35 META-INFdrwxr-xr-x. 3 admin admin 28 Feb 1 1980 org[admin@custmer-development-d apps_other]$ java -jar alert.jar. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.4.0)2020-11-20 18:30:27 [main] INFO cn.AlertApplication -Starting AlertApplication v0.0.1-SNAPSHOT using Java 1.8.0_60 on custmer-development-d-031162.te.td with PID 10833 (/home/admin/apps_other/alert01.jar started by admin in /home/adm 2020-11-20 18:30:27 [main] INFO cn.AlertApplication -The following profiles are active: dev2020-11-20 18:30:29 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer -Tomcat initialized with port(s): 8082 (http)2020-11-20 18:30:29 [main] INFO org.apache.coyote.http11.Http11NioProtocol -Initializing ProtocolHandler ["http-nio-8082"]2020-11-20 18:30:29 [main] INFO org.apache.catalina.core.StandardService -Starting service [Tomcat]2. jar常⽤命令压缩jar -cvf xxx.jar解压jar -xvf xxx.jar更新jar -uvf xxx.jar BOOT-INF/classes/application-dev.yml列出jar包内容jar -tvf xxx.jar运⾏jarjava -jar xxx.jarjava -jar xxx.jar &nohup java -jar &&表⽰在当窗⼝关闭时,程序才会中⽌运⾏。
JAR包介绍大全用途作用详解JAVA

JAR包介绍大全用途作用详解JAVAJAR(Java Archive)是Java的一种标准压缩文件格式,它是一种将多个Java类文件、资源文件、配置文件和元数据文件打包成一个文件的方式。
JAR包的使用具有很多作用和用途,下面将详细介绍。
1. 代码打包和发布:通过将Java类文件打包成JAR包,可以方便地将整个项目的代码进行打包和发布。
这样可以简化代码的传输、分发和部署。
2. 代码模块化:JAR包可以将一组相关的Java类打包成一个模块,便于代码的管理和维护。
不同的模块可以根据需要进行组合,提高代码的可复用性和可扩展性。
3.应用程序部署:将应用程序的所有依赖的类和资源文件统一打包到一个JAR包中,方便进行部署和发布。
可以减少部署过程中的错误和问题。
4. 库文件管理:JAR包可以用来管理和分发Java库文件。
开发者可以将常用的库文件打包成JAR包,并在其他项目中使用。
5. 类库扩展:在Java中,可以通过类路径(CLASSPATH)来指定需要加载的类库。
而JAR包可以通过设置类路径来扩展Java的类库。
只需将JAR包加入到类路径中,就可以在代码中使用其中的类和方法。
6.版本管理:JAR包可以用来管理和分发不同版本的软件。
通过使用不同的JAR包命名规则或目录结构,可以区分不同版本的软件,方便用户选择特定版本的功能和功能。
7.防止类文件冲突:当使用多个第三方类库时,可能会发生类文件冲突的情况。
通过将每个类库打包成一个JAR包,并且每个类库中的类在包的结构中唯一,可以避免类文件冲突的问题,保证程序的正确运行。
8. 加载器和类加载:在Java中,类加载器负责将类文件加载到Java虚拟机中。
而JAR包是可以被类加载器加载的,可以通过类加载器的机制来加载JAR包中的类。
9. Java application扩展:JAR包可以作为Java应用程序的扩展,可以在运行时动态地加载和使用JAR包中的类和方法。
这种机制可以实现插件式的应用程序设计。
java项目打包成jar包和war包有什么区别

java项目打包成jar包和war包有什么区别在Java中,将项目打包成JAR(Java Archive)包和WAR(Web Archive)包是常见的部署方式。
这两种包的主要区别在于它们的用途和部署环境。
1. JAR包(Java Archive):JAR包是一种用于打包Java类、资源文件和库文件的归档文件格式。
JAR包主要用于打包和分发独立的Java应用程序、Java库和组件。
JAR包可以包含Java代码、字节码、配置文件、资源文件和其他依赖的类库文件。
JAR包可以通过Java虚拟机(JVM)直接执行,因此适用于命令行工具、桌面应用程序和独立的Java应用。
2. WAR包(Web Archive):WAR包是一种用于打包和分发Web应用程序的归档文件格式。
WAR包主要用于部署Java Web应用程序,例如基于Java的Web应用框架(如Java Servlet、JavaServer Pages(JSP)和JavaServer Faces (JSF))。
WAR包可以包含Web应用程序的所有内容,包括Java类、JSP页面、HTML、CSS、JavaScript、配置文件、静态资源(图像、样式表等)以及依赖的类库文件。
WAR包可以部署到Java Web服务器(如Apache Tomcat、Jetty、WebLogic和WebSphere)中,以提供Web应用程序的服务。
总结:JAR包主要用于独立的Java应用程序和库的分发,而WAR包主要用于Java Web应用程序的部署。
选择JAR包还是WAR包取决于你的项目类型和部署需求。
如果你开发的是一个独立的Java应用程序,你可以将其打包为JAR包。
如果你开发的是一个Java Web应用程序,你应该将其打包为WAR包,并将其部署到Java Web服务器中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是jar包
JAR(Java ARchive,Java 归档)是一种与平台无关的文件格式,可将多个文件合成一个文件。
用户可将多个Java applet 及其所需组件(.class 文件、图像和声音)绑定到JAR 文件中,而后作为单个的简单HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。
JAR 格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。
另外,applet 编写者也可在JAR 文件中用数字签名的方式签写各项以确认其来源。
它用Java 编写,可与现有的applet 代码完全向后兼容且可充分扩展。
JAR 文件就是Java Archive File,顾名思意,它的应用是与Java 息息相关的,是Java 的一种文档格式。
JAR 文件非常类似ZIP 文件——准确的说,它就是ZIP 文件,所以叫它文件包。
JAR 文件与ZIP 文件唯一的区别就是在JAR 文件的内容中,包含了一个META-INF/MANIFEST.MF 文件,这个文件是在生成JAR 文件的时候自动创建的。
JAR文件是跨平台的,所以不必关心涉及具体平台的问题。
除了可以包括声音和图像文件以外,也可以在其中包括类文件。
涉及因特网应用时,JAR文件显得特别有用。
在JAR文件之前,Web浏览器必须重复多次请求web服务器,以便下载完构成一个“程序片”(Applet)的所有文件。
除此以外,每个文件都是未经压缩的。
但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。
同时,由于采用了压缩技术,所以可在更短的时间里获得全部数据。
另外,JAR文件里的每个入口(条目)都可以加上数字化签名(详情参考Java用户文档)。
一个JAR文件由一系列采用Zip压缩格式的文件构成,同时还有一张“详情单”,对所有这些文件进行了描述(可创建自己的详情单文件;否则,jar程序会为我们代劳)。
在联机用户文档中,可以找到与JAR详情单更多的资料(详情单的英语是“Manifest”)。
jar实用程序已与Sun的JDK配套提供,可以按我们的选择自动压缩文件。
请在命令行调用它
JAR 文件格式以流行的ZIP 文件格式为基础。
与ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和JVM 这样的工具直接使用。
在JAR 中包含特殊的文件,如manifests 和部署描述符,用来指示工具如何处理特定的JAR。
一个JAR 文件可以用于:
□用于发布和使用类库
□作为应用程序和扩展的构建单元
□作为组件、applet 或者插件程序的部署单位
□用于打包与组件相关联的辅助资源
JAR 格式允许您压缩文件以提高存储效率。
·传输平台扩展。
Java 扩展框架(Java Extensions Framework)提供了向Java 核心平台添加功能的方法,这些扩展是用JAR 文件打包的(Java 3D 和JavaMail 就是由Sun 开发的扩展例子)。
·包密封。
存储在JAR 文件中的包可以选择进行密封,以增强版本一致性和安全性。
密封一个包意味着包中的所有类都必须在同一JAR 文件中找到。
创建可执行JAR
创建一个可执行JAR 很容易。
首先将所有应用程序代码放到一个目录中。
假设应用程序中的主类是com.mycompany.myapp.Sample 。
您要创建一个包含应用程序代码的JAR 文件并标识出主类。
为此,在某个位置(不是在应用程序目录中)创建一个名为manifest 的文件,并在其中加入以下一行:
Main-Class: com.mycompany.myapp.Sample 然后,像这样创建JAR 文件:
jar cmf manifest ExecutableJar.jar application-dir
所要做的就是这些了,现在可以用java -jar执行这个JAR文件ExecutableJar.jar。
一个可执行的JAR 必须通过menifest 文件的头引用它所需要的所有其他从属JAR。
如果使用了-jar 选项,那么环境变量CLASSPATH 和在命令行中指定的所有类路径都被JVM 所忽略。
库(lib)与jar包有什么区别啊?
答案1:library是类库,就是一堆.jar文件的集合.一般情况下都是若干个.class文件能实现一组功能,这时候便可以把这些.class文件打包成.jar文件.比如说当需要使用集合类的时候,咱们需要import java.uitl.*; 对应的就是一个jar包(.jar文件)它里面就是一堆.class文件。
答案2:library是一个库的集合,library可以包含多个jar文件,jar包是封装好的javaclass 类。
看了上面的说明,不难理解:lib就是一堆jar包的集合、那么jar包里面肯定还有子包,子包里就是基本的单位类了。