(完整版)jar包是什么

(完整版)jar包是什么
(完整版)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程序会为我们代劳)。在联机用户文档中,可以找到与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包里面肯定还有子包,子包里就是基本的单位类了

如何将Java文件打包成jar文件

把java文件打包成.jar (jar命令详解) 2007-09-14 11:29 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么: 用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用zip压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。 示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:

示例2:用一个存在的清单(manifest )文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中: 来个小例子试试看: 我们只有一个HelloWorld ,如下: 将这个java 文件存到C 盘跟目录下,ok ,接下来, 在先前打开的命令提示符下(跳转到C 盘提示符下),我们输入javac HelloWorld.java ,然后继续输入: jar cvf hello.jar HelloWorld.class ,回车后去你的C 盘看看,多了什么,没错 hello.jar 。 基本的步骤我们现在都知道了,你可以自己去尝试一下随着jar 后面的参数的不同,结果有什么变化。 紧接着我们看看如何运行我们的jar 包。 在进入正题之前,你要先打开我们刚刚做好的jar 包看看,多了什么呢,META-INF 目录?再看看里面是什么,还有一个MANIFEST.MF 文件是不是?用文本编辑器(我这里是UltraEdit)打开它看看: 就是这样。这里我们对它进行修改,加一句:Main-Class: HelloWorld (在 第三行)。这个就是我们之前写的那个类,也就是我们的入口类。也即,

常用包 Java 功能介绍

Java的常用包简介 JVM的常用包一般在C:\Program Files\Java\jre1.5.0_04\lib\rt.jar 一般都会放在C:\Program Files\Java\jre1.5.0_04\lib下 jdk的一般在C:\Program Files\Java\jdk1.5.0_04\jre\lib 源代码在C:\Program Files\Java\jdk1.5.0_04\src.zip java调用的包像String啊这些自带的包的源代码都可以在这里找到。 一般碰到不会用的类都是直接去看API文档的。 1、https://www.360docs.net/doc/61611481.html,ng包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。 2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等。 3、java.util包:Java的实用工具类库Java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。包含如处理时间的date类,处理变成数组的Vector类,以及stack和HashTable 类。 4、java.util.zip包:实现文件压缩功能。 5、https://www.360docs.net/doc/61611481.html,ng.reflect包:提供用于反射对象的工具。 6、java.awt.image包:处理和操纵来自于网上的图片的java工具类库。 7、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行。 8、java.applet包:用于执行小程序的类,如Applet类。 9、https://www.360docs.net/doc/61611481.html,包:实现网络功能的类库有Socket类、ServerSocket类。 10、java.corba包和java.corba.orb包。

如何将写好的java项目生成可执行的.exe运行程序

Java桌面程序打包成exe可执行文件 前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同。其实将java程序打包成exe也需要这个可执行jar文件。 准备: 用jsmooth-setup-0.9.7.exe 或者exe4j(网上有软件和帐号下载) 账号:A-XVKN25601F-1wsau6x1ycpdzz 通用账号:L-g782dn2d-1f1yqxx1rv1sqd 第一步,将java项目打包成可执行jar文件,首先看一下我的java project结构,Main.java 是程序入口类,里面有main函数,config目录是些配置文件,lib是用到的第三方类库,这里没有用到lib中的类库,这里为了方便所需,就跟大家提下。 package com.king; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class ButtonEvent extends JFrame implements ActionListener{//实现监听接口 private static final long serialVersionUID = 1L; JButton button; public ButtonEvent(){ super("Button example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JAVA打包称JAR怎么带上JRE

让java程序带上精简的jre(附工具) java是跨平台的东西,但有的时候我们不需要它去跨平台,我们希望能想c++做的程序一样,编码和简单 处理后能够在系统运行。 这次的项目是要放到classmate pc上,这款机器是为学生订做的,系统资源很有限,一个jre1.5就70多M,放在上面肯定是不行的。于是我找了一些相关的资料,提供链接如下: 如何制作最小的RCP程序压缩包(包含JRE) java程序发布之jre篇 基本知道思路了,我把写的程序打包成jar,能双击运行了,然后拷贝一个jre到程序目录下,具体是这 样的,目录叫dict,dict下面有dict.jar、jre(目录),然后写了一个cmd脚本: @echo off set path=%cd%\jre\bin java -jar -verbose:class dict.jar >>class.txt pause 这样程序使用的就是当前目录下的jre,程序运行后,最好把所有的功能使用一遍,这样输出了一个文件class.txt,里面有所有需要的class,其格式如下: [Opened D:\data\dict\jre\lib\rt.jar] [Loaded https://www.360docs.net/doc/61611481.html,ng.Object from D:\data\dict\jre\lib\rt.jar] [Loaded java.io.Serializable from D:\data\dict\jre\lib\rt.jar] [Loaded https://www.360docs.net/doc/61611481.html,parable from D:\data\dict\jre\lib\rt.jar] [Loaded https://www.360docs.net/doc/61611481.html,ng.CharSequence from D:\data\dict\jre\lib\rt.jar] [Loaded https://www.360docs.net/doc/61611481.html,poundFileReader$FileEntry from file:/D:/data/dict/dict.jar] 我们依照这个文件来裁剪rt.jar: 首先在utralEdit中进行一些处理,去掉所有不是rt.jar中的class的行,去掉from后面的,去掉loaded 等无关项目,再把“.”替换成“/”.这个可以利用正则表达式等轻松处理。处理完后得到的文件类似如下格式: java/lang/Object java/io/Serializable java/lang/Comparable java/lang/CharSequence java/lang/String 然后写一个脚本或者程序处理,将rt中需要的的class拷贝到另一个对应的文件夹rt1,我用java写了 一个,没有时间仔细改,但能完成人物了。代码如下: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; public class ReduceRt { //文件拷贝 public static boolean copy(String file1,String file2) { try //must try and catch,otherwide will compile error

Java程序员必须了解的20个lib库

Java程序员必须了解的20个lib库 一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提高我们的开发效率,下面就来看一下在开发过程中经常会用到的一些开发第三方库,也可能不是太全,就列举一些常见或者常用的吧。 1,日志库 日志库是最常用的,毕竟在开发项目的过程中都需要使用日志来记录项目的运行信息,从而很快的定位项目的发生的问题。尽管JDK附带了自己的日志库,但是还有更好的选择,例如Log4j、SLF4j和LogBack。一般建议使用SLF4j。比如Alibaba开发手册上也是这样说的,毕竟SLF4J使您的代码独立于任何特定的日志API,就是在项目的其它框架中使用了其它的日志框架库也能够很好的集成。 2,JSON转换库 在当今的web服务、手机api接口开发和物联网世界中,JSON已经成为将信息从客户端传送到服务器的首选协议。它们前端要学好必须每天坚持学习。为了方便大家的交流学习,也是创建了一个群每天都有分享学习方法和专业老师直播

前端课程,这个扣裙首先是132 中间是667 最后是127 前端学习零基础想要学习的同学欢迎加入,如果只是凑热闹就不要来了!!!已经取代了XML,成为以独立于平台的方式传输信息的首选方式。不幸的是,JDK没有JSON库。但是,有许多优秀的第三方库允许您解析和创建JSON消息,比如Jackson和Gson,FastJson。 3,单元测试库库 单元测试是区分普通开发人员和优秀开发人员的最重要的东西。程序员经常被给予不写单元测试的借口,但是最常见的避免单元测试的借口是缺乏流行的单元测试库的经验和知识,包括JUnit、Mockito和PowerMock。 4,通用类库 Java开发人员可以使用一些优秀的通用第三方库,比如Apache Commons和谷歌Guava。我总是在我的项目中包含这些库,因为它们简化了许多任务。正如约书亚?布洛赫(Joshua Bloch)在《Effective Java》一书中正确指出的那样,重新发明轮子是没有意义的。我们应该使用经过测试的库,而不是时不时地编写我们自己的程序。对于开发人员来说,熟悉Apache Commons和谷歌Guava 是很有用的。 5,HTTP库

java开发常用的jar包的作用解释

java开发常用的jar包的作用解释 转载自: https://www.360docs.net/doc/61611481.html,/chaod5659/article/details/8250845 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: 它扩展了标准https://www.360docs.net/doc/61611481.html,ngAPI,增加了字符串操作方法、基本数值方法、对象反射、创建和串行化以及System属性。它还包含一个可继承的enum类型、对多种嵌套的Exception 类型的支持、对java.util.Date的增强以及用于构建方法的实用程序,例如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。 ArrayUtils–用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等; BitField–用于操作位元,提供了一些方便而安全的方法; BooleanUtils–用于操作和转换boolean或者Boolean及相应的数组;

Eclipse中将Java项目 打包为jar,并且引入第三方jar包 解决办法

如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如: Manifest-Version: 1.0 Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.j ar lib\mysql-connector-java-3.1.13-bin.jar Main-Class: src.YourMainClassName 其中的Class-Path就指定了外来jar包的位置。请注意假设我们的项目打包后为pr oject.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib 文件夹,并将相关的jar包放在里面。否则将会出现Exception in thread "main" https://www.360docs.net/doc/61611481.html,ng.NoClassDefFoundError的错误。 注意:如果在Class-Path 中引入比较多的jar包,不要写成一行,不然会报:java. io.IOException : line too long ,需要分多行写,第二行以及下面的第三行、第四行写的时候需要在前面空两格(敲两下空格键)即可 最后介绍一下使用Eclipse制作jar包的过程吧: 1. 首先在Eclipse中打开项目,右键点击项目,选择“Export”; 2. 选择Java/JAR file,Next; 3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间; 这里有几个选项: * Export generated class files and resources 表示只导出生成的.clas s文件和其他资源文件 * Export all output folders for checked projects 表示导出选中项目 的所有文件夹 * Export java source file and resouces 表示导出的jar包中将包含你 的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了 * Export refactorings for checked projects 把一些重构的信息文件也 包含进去 在Select the export destination中选择导出的jar的路径,Next 4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next 5. 下一个页面里可以对项目做一些配置。 * Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,

java开发常用jar包

java开发常用jar包 mail.jar与activation.jar 里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的 commons-beanutils.jar Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是https://www.360docs.net/doc/61611481.html,ng.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含日志功能 commons-io.jar Apache Commons包中的一个,java.io.*的扩展,输入输出,支持文件上传 commons-fileupload.jar Apache Commons包中的一个,是一个通过Http接收上传的文件并处理结果文件的库 dom4j-1.4.jar 和jaxen-1.1.1.jar 是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar

Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。 hibernate3.jar hibernate3的核心类库。 itext.jar 是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试代码的时候需要,否则就不用。 commons-digester.jar Apache Commons包中的一个,通过它可以很方便的解析xml文件生成java对象aspectjrt.jar 和aspectjweaver.jar Annotation 方式实现AOP commons-dbcp.jar commons-pool-1.2.jar DBCP数据库连接池 cglib-nodep-2.1_3.jar CGLIB是一个强大的高质量高性能的代码生成库,在运行时可以用它来扩展Java类 jfreechart-1.0.12.jar

java常用jar包

java常用jar包(未整理) 2011-05-11 14:58:50 分类:Java Hibernate一共包括了23个jar包,令人眼花缭乱。本文将详细讲解Hibernate每个jar包的作用,便于你在应用中根据自己的需要进行取舍。 下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包: hibernate2.jar: Hibernate的库,没有什么可说的,必须使用的jar包 cglib-asm.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 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用它来读写配置文件。 odmg.jar: ODMG是一个ORM的规范,Hibernate实现了ODMG规范,这是一个核心的库,必须使用的jar包。 commons-collections.jar:Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。 commons-beanutils.jar:Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-lang.jar: Apache Commons包中的一个,包含了一些数据类型工具类,是https://www.360docs.net/doc/61611481.html,ng.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含

Java中各个包的主要作用

Java中常用包的主要作用 java.util是JA V A的utility工具包 https://www.360docs.net/doc/61611481.html,ng是JAV A的language核心语言包 java.awt是JA V A的abstract window toolkit,抽象窗口工具包 java.applet是创建APPLET的必须包 https://www.360docs.net/doc/61611481.html,是JAV A有关网络操作的包 java.io是JAV A的输入输出流的包 java.sql是JAV A的数据库操作包 javax.swing是新的界面包 javax开头的都是扩展包 -------------------------------------------------------- java.applet支持小应用程序的结构 java.awt提供图形用户接口的能力 java.awt.color支持颜色空间和外形 java.awt.datatransfer与系统的剪贴板交换数据 java.awt.dnd支持拖拉操作 java.awt.event处理事件 java.awt.font描述多种字体类型 java.awt.geom允许你使用几何形状 java.awt.im允许编辑组件中日文,中文,韩文的输入java.awt.im.spi支持二选一的输入设备(在Java2,v1.3中加入)

java.awt.image处理图像 java.awt.image.renderable支持独立显示图像 java.awt.print支持一般的打印功能 java.beans允许你建立软件组件 java.beans.beancontext为bean提供可执行环境 java.io输入输出数据 https://www.360docs.net/doc/61611481.html,ng提供核心功能 https://www.360docs.net/doc/61611481.html,ng.ref使能与垃圾回收交互 https://www.360docs.net/doc/61611481.html,ng.reflect运行时分析代码 java.math处理大整数和十进制数 https://www.360docs.net/doc/61611481.html,支持网络功能 java.rmi支持远程方法调用 java.rmi.activation激活永久对象 java.rmi.dgc管理分布垃圾回收 java.rmi.registry映射名称到远程对象引用 java.rmi.server支持远程方法调用 java.security处理证书,密钥,摘要,签名和其他安全功能 java.security.acl管理访问控制列表 java.security.cert分析和管理证书 java.security.interfaces为DSA(数字签名算法)定义接口java.security.spec设定密钥和算法参数 java.sql与SQL(结构化查询语言)数据库交互java.text格式化,查询和处理文本

Java程序打成Jar包做成EXE安装程序(2)

J a v a程序完成以后,对于W i n d o w s操作系统,习惯总是想双击某个e x e文件就可以直接运行程序,现我将一步一步的实现该过程.最 终结果是:不用安装J R E环境,不用安装数据库,直接双击一个e x e 文件,就可以运行程序. 下面我将以我最近写的一个程序作例子,进行该打包过程. 该程序是使用了:H i b e r n a t e,S p r i n g,D e r b y的J a v a G U I.(J D K 需要1.6版本,因该版本才有D e r b y),我使用的是E c l i p s e进行开发. 第一步:完成J a v a G U I程序 在E c l i p s e下,程序能够正常运行. 第二步:准备清单文件(M A N I F E S T.M F) 方法1:直接拷贝其它能运行的J A R文件中的M A N I F E S T.M F 进行修改 方法2:利用I D E工具,如E c l i p s e在生成J A R文件时自动生成 M A N I F E S T.M F内容如下: M a n i f e s t-V e r s i o n: 1.0 M a i n-C l a s s:m a n a g e r.u i.M a i n F r a m e C l a s s-P a t h: ./l i b/s p r i n g.j a r ./l i b/h i b e r n a t e.j a r ./l i b/d e r b y.j a r S p l a s h S c r e e n-I m a g e r: m a n a g e r/r e s o u r c e s/i m a g e s/s p l a s h.j p g 说明: M a n i f e s t-V e r s i o n-指定清单文件的版本号 M a i n-C l a s s-指定程序运行的入口类。注意:类名后不要加c l a s s扩展名 C l a s s-P a t h-指定支持库的路径。“.”指程序运行目录,即导出的J A R包所在目录。程序运行时依据C l a s s-P a t h项的设置路径来查找支持库。每一个支持库之间用空格隔开。在这里使用了 h i b e r n a t e,s p r i n g,d e r b y. 注意:

将CLASS文件生成JAR文件

将CLASS文件生成JAR文件 常常在网上看到有人询问:如何把java 程序编译成.exe 文件。通常回答只有两种,一种是制作一个可执行的JAR 文件包,然后就可以像.chm 文档一样双击运行了;而另一种是使用JET 来进行编译。但是JET 是要用钱买的,而且据说JET 也不是能把所有的Java 程序都编译成执行文件,性能也要打些折扣。所以,使用制作可执行JAR 文件包的方法就是最佳选择了,何况它还能保持Java 的跨平台特性。 下面就来看看什么是JAR 文件包吧: 1. JAR 文件包 JAR 文件就是Java Archive File,顾名思意,它的应用是与Java 息息相关的,是Java 的一种文档格式。JAR 文件非常类似ZIP 文件——准确的说,它就是ZIP 文件,所以叫它文件包。JAR 文件与ZIP 文件唯一的区别就是在JAR 文件的内容中,包含了一个META-INF/MANIFEST.MF 文件,这个文件是在生成JAR 文件的时候自动创建的。举个例子,如果我们具有如下目录结构的一些文件: == `-- test `-- Test.class 把它压缩成ZIP 文件test.zip,则这个ZIP 文件的内部目录结构为: test.zip `-- test `-- Test.class 如果我们使用JDK 的jar 命令把它打成JAR 文件包test.jar,则这个JAR 文件的内部目录结构为: test.jar |-- META-INF |`-- MANIFEST.MF `-- test

`--Test.class 2. 创建可执行的JAR 文件包 制作一个可执行的JAR 文件包来发布你的程序是JAR 文件包最典型的用法。 Java 程序是由若干个 .class 文件组成的。这些.class 文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录指定给CLASSPA TH 环境变量或者java 命令的-cp 参数;运行时还要到控制台下去使用java 命令来运行,如果需要直接双击运行必须写Windows 的批处理文件(.bat) 或者Linux 的Shell 程序。因此,许多人说,Java是一种方便开发者苦了用户的程序设计语言。其实不然,如果开发者能够制作一个可执行的JAR 文件包交给用户,那么用户使用起来就方便了。在Windows 下安装JRE(Java Runtime Environment) 的时候,安装文件会将.jar 文件映射给javaw.exe 打开。那么,对于一个可执行的JAR 文件包,用户只需要双击它就可以运行程序了,和阅读.chm 文档一样方便(.chm 文档默认是由hh.exe 打开的)。那么,现在的关键,就是如何来创建这个可执行的JAR 文件包。 创建可执行的JAR 文件包,需要使用带cvfm 参数的jar 命令,同样以上述test 目录为例,命令如下: jar cvfm test.jar manifest.mf test 这里test.jar 和manifest.mf 两个文件,分别是对应的参数 f 和m,其重头戏在manifest.mf。因为要创建可执行的JAR 文件包,光靠指定一个manifest.mf 文件是不够的,因为MANIFEST 是JAR 文件包的特征,可执行的JAR 文件包和不可执行的JAR 文件包都包含MANIFEST。关键在于可执行JAR 文件包的MANIFEST,其内容包含了Main-Class 一项。 这在MANIFEST 中书写格式如下: Main-Class: 可执行主类全名(包含包名) 例如,假设上例中的Test.class 是属于test 包的,而且是可执行的类(定义了public static void main(String[]) 方法), 那么这个manifest.mf 可以编辑如下: Main-Class: test.Test <回车>; 这个manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有Main-Class: test.Test 一行,且该行以一个回车符结束即可。 创建了manifest.mf 文件之后,我们的目录结构变为: ==

如何打包java可执行程序

有些时候,需要将java程序双击就可以运行的jar文件,如果用手工打包会比较痛苦(尤其是包含有第三方的jar时),这里介绍一个快捷的方式:用FatJar 实现。 1、下载、配置。 fatjar是Eclipse的一个插件,下载后配置到eclipse中即可。 下载地址: https://www.360docs.net/doc/61611481.html,/fjep/net.sf.fjep.fatjar_0.0.27.zip?m odtime=1195824818&big_mirror=0 在线安装地址:http://kurucz-grafika.de/fatjar 配置好重新启动eclipse,在“首选项”可发现“Fat Jar Prefreence”,表示安装成功。 相关附件可以在我的blog上下载:https://www.360docs.net/doc/61611481.html,/blog/891089 2、生成可运行jar: 选中一个项目,右键选择“build fat jar”探出对话框,"jar-name"、“Main-Class”必须填写。

完成后“下一步”, 选择需要到处的资源(一般全选择)

选好后,点击“完成”生成jar文件。 用rar打开文件可以看到第三方的库也一并打入了包中。 ok,现在运行“java -jar xxx.jar”可以看到结果了。 3、在windows、linux下执行 (假定我们打包后的文件名称是resourceMonitor.jar,主类是job.StartUp,并且需要一个sigar-x86-winnt.dll库支持)

a、在windows下: 新建runResourceMonitor.bat文件,和resourceMonitor.jar同目录,内容如下: 代码 1.@echo off 2.echo 正在执行,请稍等...... 3.@rem start "Ecode App Server Monitor v1.0" java -jar resourceMo nitor.jar 4.start "Ecode App Server Monitor v1.0" java -classpath .\resourc eMonitor.jar;.\dll\sigar-x86-winnt.dll job.StartUp 5.echo 执行完成! 6. 7.@rem pause 拷贝sigar-x86-winnt.dll,和resourceMonitor.jar同目录。 最后的目录结构: 双击“runResourceMonitor.bat”即可启动服务。 b、在linux下运行 linux和windows有所不同,主要表现在对lib库位置的读取上。win下直接放在jar同目录下即可自动找到,但是linux下需要指定LD_LIBRARY_PATH的位置。关于LD_LIBRARY_PATH可以看本文后面的知识点。 方法是:

命令行下编译java并生成jar包(1)

命令行下编译java并生成jar包 jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布。 为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java 存档文件。这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部署)。 那我们的输入(要压缩的东西)主要是class文件,还有辅助的资源(这其中可能有图片,jsp文件,html文件等等)。Jar技术在jdk1.1版本中就已存在,在1.2中又有了增强。接下来说说jar的好处吧,这是官方的描述:安全,快速下载,压缩,猎取包,版本化包,可携。 说了这么多,我们现在开始实施。 先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar –help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么: 用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名… 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用ZIP压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和存档文件名都需要被指定,按‘m‘ 和?f‘标志指定的相同顺序。 示例1:将两个class文件存档到一个名为?classes.jar‘ 的存档文件中: jar cvf classes.jar Foo.class Bar.class 示例2:用一个存在的清单(manifest)文件?mymanifest‘ 将foo/ 目录下的所有 文件存档到一个名为?classes.jar‘ 的存档文件中: jar cvfm classes.jar mymanifest -C foo/ . 来个小例子试试看: 我们只有一个HelloWorld,如下: public class HelloWorld{ public static void main(String[] args){ System.out.println(―Hi, Hello World!‖); } }

在windows下jar文件双击运行的常用方式

关于Java应用以JAR文件发布如何双击自动运行 java程序开发完毕后要以jar包发布,不过在windows系统中jar文件默认双击多会使用RAR 或者其他解压缩文件工具打开,因为jar文件本身就是压缩文件,且rar等工具默认又对jar文件进行关联,所以并不能像我们想象的那样运行目标应用程序。如果要在windows双击自动运行以jar 文件发布的Java应用程序必须对jar文件进行运行方式设置,专门针对jar文件形式来说,在windows 下通常有如下2种方式: 方式一 以命令形式运行Jar文件,过程基本如下: 假设一个已经开发好的java应用打成jar包的文件app.jar位于E:\apps\ 目录下。可以如下所示以命令的形式运行这个jar文件: 1 打开windows命令提示符窗口。 2 进入app.jar 所在的目录E:\apps下。 3 键入如下命令:………\>java –jar app.jar 回车即可运行启动以app.jar 方式发布的java应用。 方式二 设置jar文件的打开运行方式,过程基本如下: 1 打开资源管理器 2 选择菜单项工具的文件夹选项

3 选择文件类型选项卡 4 在已注册的文件类型列表中找到jar 文件,如果没有点击新建按钮并键入jar 确定

会看到已注册文件类型中有了jar文件 5 设置jar文件的高级配置包括图标和打开方式等,选中jar文件点击高级按钮如图 6在此可以更改jar文件的图标:要执行此操作可以点击“更改图标“按钮进行选择图标,点击确认按钮完成图标设置

7 设置打开jar文件的方式(这是主要的) 回到“编辑文件类型”窗口点击“新建”按钮添加操作在“新操作”对话框中“操作”文本输入框中键入open ,点击“浏览”选则运行jar文件的应用程序路径如图: 注意:选择运行的jar文件的应用程序路径是本计算机中的jer 运行环境,路径是….\jer\bin\javaw.exe –jar 参数表示让系统以java jar程序工具运行所有jar文件。 8 “确定完成 提示:任何方式运行jar文件形式的java应用都必须确保jar文件打包正确,包括清单文件中的主类设置等信息,否则jar文件运行时会提示异常错误信息,关于java应用程序打成jar文件发布这里不再赘述。

jar包和war包的打包规范

CMD 模式下实现jar打包 注意包名以及manifest.mf文件每一个冒号有空格 最后一行为空 1、编译java文件 2、写manifest.mf文件 Manifest-Version: 1.0 Main-Class:<空格>package.class//指定主类,目的是如果有main函数能够直接运行 Class-Path: 包含的其他jar包中间空格间隔如果有多个jar包且不能为jar包中的jar包。是需要在包里面包含的本地包lib/edd/. <换行>最后一行为空行 保存 注意:没有添加主清单属性则不能够直接通过java –jar 包名.jar运行文件 Cmd下执行jar –cvfm name.jar manifest.mf 文件.class 这种情况是打包没有package名的.class文件。 jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 jar cvfm classes.jar mymanifest.mf -C foo/ . 文件夹下所有类打包 foo为文件夹。 这种是打包有包名的.class。应为这种情况下编译会产生cn.mypackage的情况 因此在manifest文件中会写出,而且也需啊把包的文件夹放在与manifest同一个位置再打包运行即可 运行即是java –jar name.jar;这种情况必须要有manifest文件。不然不能执行main函数 含有多个java编译文件,属于同一个包的打包。也是上诉方法,将其编译到一个包文件夹中,然后编译运行即可。 Jar 包的导入(CMD下使用) 只需要将包放入到classpath对应的文件夹下,然后使用import cn.ddd.class 即可。 如下: import cn.mypackage.Testjar;//但是这种情况下用类需要把全名写出来不然不能访问,也就是说import cn.mypackage.*;写法是错误的 public class testcout { public static void main(String[] args) {

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用户文档)。

相关文档
最新文档