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服务器中。
java中常用jar包
java中常⽤jar包commons-io.jar:可以看成是java.io的扩展,⽤来帮助进⾏IO功能开发.它包含三个主要的领域:Utilityclasses-提供⼀些静态⽅法来完成公共任务.Filters-提供⽂件过滤器的各种实现.Streams-提供实⽤的Stream,reader与writer实现.commons-beanutils.jar:提供对Java反射和⾃省API的包装,主要提供了对于 JavaBean进⾏各种操作。
commons-digester.jar:它能⽅便地将XML⽂档所定义的元素转化为JAVA对象,其实它的⽤法有点象栈(当然内在的原理就是那个古⽼的东西,只是提供了更⾼⼀层的封装)。
commons-lang.jar:它扩展了标准 ngAPI,增加了字符串操作⽅法、基本数值⽅法、对象反射、创建和串⾏化以及System属性。
它还包含⼀个可继承的enum类型、对多种嵌套的Exception类型的⽀持、对java.util.Date的增强以及⽤于构建⽅法的实⽤程序,例如⾃动⽣成 toString()的结果、⾃动实现hashCode()和equals()⽅法、数组操作、枚举、⽇期和时间的处理等等。
ArrayUtils–⽤于对数组的操作,如添加、查找、删除、⼦数组、倒序、元素类型转换等;BitField–⽤于操作位元,提供了⼀些⽅便⽽安全的⽅法;BooleanUtils–⽤于操作和转换boolean或者Boolean及相应的数组;CharEncoding–包含了Java环境⽀持的字符编码,提供是否⽀持某种编码的判断;CharRange–⽤于设定字符范围并做相应检查;CharSet–⽤于设定⼀组字符作为范围并做相应检查;CharSetUtils–⽤于操作CharSet;CharUtils–⽤于操作char值和Character对象;ClassUtils–⽤于对Java类的操作,不使⽤反射;ObjectUtils–⽤于操作Java对象,提供null安全的访问和其他⼀些功能;RandomStringUtils–⽤于⽣成随机的字符串;SerializationUtils–⽤于处理对象序列化,提供⽐⼀般Java序列化更⾼级的处理能⼒;StringEscapeUtils–⽤于正确处理转义字符,产⽣正确的Java、JavaScript、HTML、XML和SQL代码;StringUtils–处理String的核⼼类,提供了相当多的功能;SystemUtils–在ng.System基础上提供更⽅便的访问,如⽤户路径、Java版本、时区、操作系统等判断;Validate–提供验证的操作,有点类似assert断⾔;WordUtils–⽤于处理单词⼤⼩写、换⾏等。
java开发常用jar包
struts2-core-2.0.14.jar struts2核心jar
struts2-spring-plugin-2.0.6.jar struts2整合Spring所需jar
taglibs-datetime.jar Apache开源组织提供标签库,用于格式化日期。
db2jcc.jar java连接DB2所需jar
db2jcc_license_cu.jar java连接DB2所需jar
dom4j-1.6.1.jar 解析XML
ehcache-1.2.4.jar hibernate的二级缓存如果用ehcache的时候需要此jar包
emf.jar 基于Eclipse的模型框架
wsdl4j-1.5.1.jar Axis运行所需要的组件包
activation.jar JAF框架的jar包
annotations-api.jar 使用注解所需jar
ant.jar 用于自动化调用程序完成项目的编译,打包,测试等
aopalliance-1.0.jar 支持Spring AOP
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包,
taglibs-mailer.jar 用于发送邮件
taglibs-string.jar Apache开源组织提供标签库,用于对String的操作。
【Java基础】Jar包结构结构分析和操作具体解释
【Java基础】Jar包结构结构分析和操作具体解释作者:郭嘉邮箱:allenwells@博客:github:⼀ JAR包结构分析JAR(Java Archive FIle)Java归档⽂件,是Java标准的⽂档格式,是⼀个或多个Java字节码⽂件的打包压缩⽂件。
採⽤常见的ZIP压缩算法,和ZIP⽂件⼗分相似,能够直接解压。
JAR⽂件主要⽤来压缩和公布字节码⽂件,并且还⽤于部署和封装库、组件和插件程序。
并且能够被像编辑器和JVM这种⼯具直接使⽤。
1.1 JAR包结构JAR包的结构例如以下图所看到的:1.2 MANIFEST.MF属性从上图能够看出,JAR包⽐普通zip⽂件多了⼀个META-INF⽂件夹,该⽂件夹下包括了⼀个MANFEST.MF⽂件。
1.2.1 ⼀般属性1. Manifest-Version⽤来定义manifest⽂件的版本号,⽐如:Manifest-Version: 1.02. Created-By声明该⽂件的⽣成者,⼀般该属性是由jar命令⾏⼯具⽣成的。
⽐如:Created-By: Apache Ant 1.5.13. Signature-Version定义jar⽂件的签名版本号4. Class-Path应⽤程序或者类装载器使⽤该值来构建内部的类搜索路径1.2.2 应⽤程序相关属性1. Main-Class定义jar⽂件的⼊⼝类。
该类必须是⼀个可运⾏的类,⼀旦定义了该属性就可以通过 java -jar x.jar来运⾏该jar⽂件。
1.2.3 ⼩程序(Applet)相关属性1. Extendsion-List该属性指定了⼩程序须要的扩展信息列表。
列表中的每⼀个名字相应以下的属性2. -Extension-Name3. -Specification-Version4. -Implementation-Version5. -Implementation-Vendor-Id6. -Implementation-URL1.2.4 扩展标识属性1. Extension-Name该属性定义了jar⽂件的标识,⽐如Extension-Name: Struts Framework。
j2ee_jar包介绍
--面向切面编程自动代理必须使用的jar 就是自动代码生成器同xdoclet* asm/asm*-2.2.3.jar- ObjectWeb ASM 2.2.3 ()- required for building the framework- required at runtime when using parameter name discovery with AspectJ* aspectj/aspectjweaver.jar, aspectj/aspectjrt.jar, (aspectj/aspectjtools.jar) - AspectJ 1.5.3 ()- required for building the framework- required at runtime when using Spring's AspectJ supportNOTE: aspectjtools.jar is not included in the Spring distribution because of its size.It needs to be taken from the AspectJ distribution or from Spring CVS. Note that thisis only necessary if you want to rebuild the Spring jars including the AspectJ aspects.* axis/axis.jar, axis/saaj.jar, axis/wsdl4j.jar- Apache Axis 1.4 (/axis)- required for building the framework- required for running JPetStore全称:Apache EXtensible Interaction System 阿帕奇可扩展交互系统Axis本质上就是一个 SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。
maven packaging的几种形式
maven packaging的几种形式
Maven是一个流行的项目管理和构建工具,它可以将Java项目打包成不同的形式以便于部署和分发。
在Maven中,有几种常见的打包形式,包括:
1. JAR包:JAR(Java Archive)是一种用于打包Java类、资源和元数据的格式。
使用Maven打包JAR包非常简单,只需要在pom.xml中声明打包类型为“jar”,然后运行“mvn package”命令即可。
2. WAR包:WAR(Web Archive)是一种用于打包Web应用程序的格式。
它包含了Web应用程序的所有文件,包括JSP、HTML、CSS、JavaScript、Servlet类等。
使用Maven打包WAR包也很简单,只需要在pom.xml中声明打包类型为“war”,然后运行“mvn package”命令即可。
3. EAR包:EAR(Enterprise Archive)是一种用于打包J2EE 企业级应用程序的格式。
它可以包含多个模块,如EJB模块、Web模块、JAR模块等。
使用Maven打包EAR包需要在pom.xml中声明打包类型为“ear”,并指定每个模块的打包方式,然后运行“mvn package”命令即可。
4. POM包:POM(Project Object Model)是Maven项目的元数据文件,包含了项目的依赖、插件、构建配置等信息。
使用Maven打包POM包非常简单,只需要在pom.xml中声明打包类型为“pom”,然后运行“mvn package”命令即可。
以上就是Maven常见的打包形式,不同的项目需要选择适合自己的打包形式,以便于项目的部署和分发。
jar打包命令详解
-v 生成详细报告并打印到标准输出
-f 指定 JAR 文件名,通常这个参数是必须的
-m 指定需要包含的 MANIFEST 清单文件
-0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快
-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
该命令没有执行过程的显示,执行结果是在当前目录生成了 test.jar 文件。如果当前目录已经存在 test.jar,那么该文件将被覆盖。
2) jar cvf test.jar test
该命令与上例中的结果相同,但是由于 v 参数的作用,显示出了打包过程,如下:
标明清单(manifest)
Main-Class: 可执行主类全名(包含包名)
例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类 (定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下:
Main-Class: test.Test <回车>
3. jar 命令详解
jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUM 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLASSPATH 中。
需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样。而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包之前可以使用 java <类名> 来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH 正确的情况下)。
jar包是什么
什么是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程序会为我们代劳)。
hibernate jar包详解
(3)dom4j.jar:
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的dom4j是一个非常非常优秀的Java XML API,具有性能优异功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能功能和易用性的评测,dom4j无论在那个方面都是非常出色的我早在将近两年之前就开始使用dom4j,直到现在如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j这是必须使用的jar包,Hibernate用它来读写配置文件
(8)commons-logging.jar:
Apache Commons包中的一个,包含了日志功能,必须使用的jar包这个包本身包含了一个Simple Logger,但是功能很弱在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的java.util.logging,如果也找不到就用Simple Loggercommons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般
Hibernate一共包括了23个jar包,令人眼花缭乱下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包:
jar包的使用方法
jar包的使用方法一、什么是jar包在Java开发中,jar包(Java Archive)是一种用于存放Java类、资源文件和元数据的文件格式。
它是一种压缩文件,通常以.jar作为文件扩展名。
jar包可以将多个Java文件打包成一个文件,方便程序的分发和部署。
二、安装jar包安装jar包非常简单,只需要将jar包文件复制到Java项目的classpath路径下即可。
classpath是Java程序搜索类和资源文件的路径。
一般情况下,可以将jar包放置在项目的lib目录下,然后在项目的构建配置中添加jar包的依赖项。
三、使用jar包使用jar包可以通过两种方式:命令行方式和集成开发环境(IDE)方式。
1. 命令行方式在命令行中使用jar包,可以通过Java命令来执行jar包中的主类。
假设我们有一个名为example.jar的jar包,其中包含一个名为com.example.Main的主类。
可以使用以下命令执行该jar包:```java -jar example.jar```2. 集成开发环境(IDE)方式在集成开发环境中,可以通过添加jar包的依赖项来使用它。
不同的IDE有不同的配置方法,以Eclipse为例,可以按照以下步骤添加jar包的依赖项:- 右击项目,选择"Properties";- 在弹出的对话框中,选择"Java Build Path";- 在"Libraries"选项卡中,点击"Add JARS..."按钮;- 选择jar包文件并点击"OK"按钮。
四、使用示例下面以一个简单的示例来演示如何使用jar包。
假设我们有一个Java项目,其中包含两个类:Main.java和Util.java。
Util.java提供了一个用于计算两个整数之和的方法add()。
现在我们希望将这两个类打包成一个jar包,并在另一个项目中使用它。
利用 java发布服务(jar包)
利用 JavaService 发布服务(jar包)前言:1.先了解什么叫做Windows服务?Microsoft Windows 服务(即,以前的NT 服务)使您能够创建在它们自己的Windows 会话中可长时间运行的可执行应用程序。
这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。
这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。
还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。
2.再来解释下jar可执行文件JAR又称为java归档文件,是与平台无关的文件格式。
以流行的ZIP 文件格式为基础。
与ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和JVM 这样的工具直接使用。
jar在java中作为一种项目的发布形式比较普遍,往往为了容易管理更需要作为一种系统服务发布——起码服务器重启了不用人工去重新打开你所要运行的jar 文件。
一、利用JavaService 发布服务(jar包)这里简单的介绍下怎么将jar发布到winNT平台服务上,有以下几个准备工作和注意的问题。
首先:我们需要哪些东西?1 下载JavaService//project/showfiles.php?group_id=137&release_id=1560获得windows的zip压缩版,文件名形如:JavaService-x.x.xx.zip,其中x.x.xx为版本号,当前版本为JavaService-2.0.10.zip,请使用最新版。
32位的操作系统和64位的需要不同的javaService.exe。
将JavaService-2.0.10.zip解压缩到c:\JavaService目录下。
(其实任意目录下都可以)3 编写java类/应用程序jar文件保存为任意目录,如:"d:\JavaTest\Test.java",并编译为Test.class;4 注册Windows服务进入c:\JavaService目录,执行如下命令:其中%JAVA_HOME% = D:\MyDrivers\jdk7JavaService.exe -install MyService "%JAVA_HOME%"\jre\bin\server\jvm.dll -Djava.class.path="%JAVA_HOME%"\lib\tools.jar;d:\JavaTest -start Test-install 开关后面的参数是要添加的服务名;-start 开关后面的参数是要启动的java类名;-Djava.class.path指定你所需要运行的jar包,以及它所依赖的第三方包;后面参数中的d:\javaTest是我的Test.class所在路径,实际应用中应该添加你的CLASSPATH。
- 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包里面肯定还有子包,子包里就是基本的单位类了。