搜档网
当前位置:搜档网 › 命令行下编译java并生成jar包(1)

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

命令行下编译java并生成jar包(1)
命令行下编译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!‖);

}

}

我将这个java文件存到C盘跟目录下,ok,接下来,

在先前打开的命令提示符下(跳转到C盘提示符下),我们输入javac HelloWorld.java,然后继续输入:jar cvf hello.jar HelloWorld.class,回车后去你的C盘看看,多了什么,没错hello.jar 。

基本的步骤我们现在都知道了,你可以自己去尝试一下随着jar后面的参数的不同,结果有什么变化。

紧接着我们看看如何运行我们的jar包。

在进入正题之前,你要先打开我们刚刚做好的jar包看看,多了什么呢,META-INF目录?再看看里面是什么,还有一个MANIFEST.MF文件是不是?用文本编辑器(我这里是UltraEdit)打开它看看:

Manifest-V ersion: 1.0

Created-By: 1.4.2 (Sun Microsystems Inc.)

就是这样。这里我们对它进行修改,加一句:Main-Class: HelloWorld (在第三行)。这个就是我们之前写的那个类,也就是我们的入口类。也即,

Manifest-V ersion: 1.0

Created-By: 1.4.2 (Sun Microsystems Inc.)

Main-Class: HelloWorld

接下来,我们在命令提示符里执行:

jar umf MANIFEST.MF app.jar

这样我们使用了我们自己的MANIFEST.MF文件对原来默认的进行了更新。你不妨可以再进去看看是不是添上了Main-Class: HelloWorld这一句。

Ok,这个最后的一步了,来验证我们做的一切,在命令提示符中输入:

java -jar hello.jar(执行)

出现了什么,――Hi, Hello World!

我们再来看看jar文件在tomcat中发布,注意:在tomcat中我们就不能再用jar这种格式,而改war格式,它是专门用于web应用的,其实整个过程下来基本上和jar是类似的:

先准备我们要打包的资源。

找到存放tomcat的webapps目录,进到其中,新建一个文件夹,这里命名为hello,再进去新建WEB-INF文件夹,再进去新建classes 文件夹,此时我们也将我们唯一的servlet,HelloWorld.java放到这里,在与classes目录同级下建立一文件web.xml。Ok,目前我们初步建立了一个简单的web应用。

这是HelloWorld.java:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {

res.setContentType(‖text/html‖);

PrintWriter out = res.getWriter();

out.println(‖‖);

out.println(‖Hello, World!‖);

out.println(‖‖);

out.println(‖Hello, World!‖);

out.println(‖‖);

}

}//end here!

对它编译。下面是web.xml:

?-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN‘

?https://www.sodocs.net/doc/4f6395329.html,/j2ee/dtds/web-app_2_3.dtd‘>

hello

HelloWorld

hello

/HelloWorld

开始压缩,形成war档:

在命令提示符下进到先前创制的hello目录下,执行jar cvf hello.war * ,我们便得到hello.war。将它拷贝至webapps目录下,ok,来看最后一步,打开tomcat的目录conf中的server.xml,加入:

reloadable=‖true‖/>

大功告成!运行它,启动tomcat,后在浏览器中输入http://localhost:8080/hello/HelloWorld,有了吗?

最后,如果你想用ant来完成以上的打包活动,下面就告诉你:

对于jar来说。在build.xml中,

对于war,

好了,就这么多,希望对你有点帮助。:)

我上传了上面打过的两个包,hello.jar和hello.war。『点击下载』

『点击下载』

第一rar文件对应的是hello.jar,下载后将其名改为hello.jar

第二rar文件对应hello.war,下载后改为hello.war。

这是由于上传不了jar格式和war格式的文件,你只好照我上面说的去做了:)

补充:

############

jar 基本操作:

############

1. 创建jar文件

jar cf jar-file input-file(s)

c—want to Create a JAR file.

f—want the output to go to a file rather than to stdout.

eg: 1)jar cf myjar.jar query_maintain_insert.htm

2)jar cvf myjar.jar query_maintain_insert.htm

v—Produces verbose(详细的) output.

3)jar cvf myjar.jar query_maintain_insert.htm mydirectory

4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory

0—don‘t want the JAR file to be compressed.

5)jar cmf MANIFEST.MF myjar.jar yahh.txt

m—Used to include manifest information from an existing manifest file.

6)jar cMf MANIFEST.MF myjar.jar yahh.txt

M—the default manifest file should not be produced.

7)jar cvf myjar.jar *

*—create all contents in current directory.

2. 察看jar文件

jar tf jar-file

t—want to view the Table of contents of the JAR file.

eg: 1)jar vft yahh.jar

v—Produces verbose(详细的) output.

3. 提取jar文件

jar xf jar-file [archived-file(s)]

x—want to extract files from the JAR archive.

eg: 1)jar xf yahh.jar yahh.txt(仅提取文件yahh.txt)

2)jar xf yahh.jar alex/yahhalex.txt(仅提取目录alex下的文件yahhalex.txt)

3)jar xf yahh.jar(提取该jar包中的所有文件或目录)

4. 修改Manifest文件

jar cmf manifest-addition jar-file input-file(s)

m—Used to include manifest information from an existing manifest file.

5. 更新jar文件

jar uf jar-file input-file(s)

u—want to update an existing JAR file.

常用包 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.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.html,ng.reflect包:提供用于反射对象的工具。 6、java.awt.image包:处理和操纵来自于网上的图片的java工具类库。 7、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行。 8、java.applet包:用于执行小程序的类,如Applet类。 9、https://www.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.html,parable from D:\data\dict\jre\lib\rt.jar] [Loaded https://www.sodocs.net/doc/4f6395329.html,ng.CharSequence from D:\data\dict\jre\lib\rt.jar] [Loaded https://www.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.html,ng.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含

Java中各个包的主要作用

Java中常用包的主要作用 java.util是JA V A的utility工具包 https://www.sodocs.net/doc/4f6395329.html,ng是JAV A的language核心语言包 java.awt是JA V A的abstract window toolkit,抽象窗口工具包 java.applet是创建APPLET的必须包 https://www.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.html,ng提供核心功能 https://www.sodocs.net/doc/4f6395329.html,ng.ref使能与垃圾回收交互 https://www.sodocs.net/doc/4f6395329.html,ng.reflect运行时分析代码 java.math处理大整数和十进制数 https://www.sodocs.net/doc/4f6395329.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格式化,查询和处理文本

将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程序打成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. 注意:

如何打包java可执行程序

有些时候,需要将java程序双击就可以运行的jar文件,如果用手工打包会比较痛苦(尤其是包含有第三方的jar时),这里介绍一个快捷的方式:用FatJar 实现。 1、下载、配置。 fatjar是Eclipse的一个插件,下载后配置到eclipse中即可。 下载地址: https://www.sodocs.net/doc/4f6395329.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.sodocs.net/doc/4f6395329.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!‖); } }

Eclipse中将项目导出jar包,以及转化成exe的方法

Eclipse中将项目导出jar包,以及转化成exe文件 2011-06-27 09:24 一、导出jar文件: 如果你的程序开发已经接近尾声了,正准备将其生成桌面可执行文件却不知道该如何操作时,你只要按照 以下步骤实行即可:选中你的项目---然后右击弹出选项列表---选择Export---Java---jar file---next---browser(选择jar的存放路径)---next---next(不管太多继续下一步)---browser(选择你 程序的主类--OK)---finish;查看你存放jar的目录,是否已经生成了?如果没有你一定没按照步骤操作. 二、运行jar文件: 生成的jar文件你可以双击运行它,但默认情况下会以压缩包的方式打开,如果这不是你想要的结果,请右 击文件---打开方式---选择java(TM)platform来运行.我想这时你应该看到了你的软件界面.先恭喜你了.. 三、连同第三方文件一并导出至jar文件: 如果你在程序开发的时候用到了第三方提供的API或者其它附属资源,在你导出生成jar文件时你必须将 第三方的文件一并导出,不然你的程序运行将达不到你想要的结果. 你可以利用Fat jar插件生成jar,Fat jar 的下载地址:https://www.sodocs.net/doc/4f6395329.html,/projects/fjep/下载的文件是net.sf.fjep.fatjar_0.0.31.zip,解压缩后你会看到plugins文件夹中的 net.sf.fjep.fatjar_0.0.31.jar文件(简称Fat jar). 插件安装:把Fat jar文件拷贝到你的eclipse目录下的plugins中..重新启动你的eclipse平台,然后 查看Window---preferences,弹出的窗口中有Fat jar preferences这一项则说明你已经安装成功了,没有这一项则未安装成功,需要多做如下几步操作:到你的eclipse目录下的 configuration---org.eclipse.update,并删除platform.xml文件,然后重新启动eclipse.查看 Window---preferences,你会发现Fat jar preferences这一项.恭喜你安装成功了.(未成功可直接去墙撞死).. 用Fat jar打包:右击你的项目,选项列表中有Build Fat jar这一项,选择它,弹出的窗口你会觉得特别 亲切,一目了然使用很方便,点击Browser(Main-Class选择你的主类)---next---finish(勾选你需要一起 打包的资源,默认为全部勾选).瞧,jar文件就生成在你的工程项目中了.运行它,一切顺利,否则就是你编程的问题了.. 另:如果你不想用Fat jar来打包,有一个更快捷的方法可以帮助你,但也是有缺陷的. 步骤:将你需要用到的附属文件放到你的jre安装目录下的\lib\ext目录中(安装JDK的同时也安装了jre),再通过(一、导出jar文件)的方式生成jar.这样就可以了.它有个致命的缺点就是,这样的jar文件只能在你本机可以使用,如果要在别的机子上运行必需在\lib\ext放置同样的附属资源. 四、将jar文件转换成exe可执行文件:

在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包是什么

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

java jar包运行及bat文件制作

在dos下运行java jar包,并把命令存为bat文件 假如我的jar包文件regexCreator.jar放在”E:\jartools“下,dos默认显示目录是:C:\Documents and Settings\Administrator> 1、在dos下运行java jar包,命令清单如下: C:\Documents and Settings\Administrator>e: E:\>cd E:\jartools E:\jartools>java -jar regexCreator.jar 注意:jdk安装要正确,jar文件是可以执行的。 2、编写bat文件,假如文件名保存为regexCreator.bat清单如下: e: cd E:\jartools java -jar regexCreator.jar pause 把bat文件和你的程序放到同一目录下。 3、在bat文件中运行jar文件 在电脑上安装了java运行环境后,双击bat文件即可运行程序。 4、你可以为main方法执行的时候指定初始化参数,比如你的可执行文件如下:import java.awt.Frame; public class TestFrame { public static void main( String args[]) { String s = args[0]; Frame f = new Frame(s); f.setSize( 200,100); f.setVisible( true); } } 导出之后的文件为test.jar在你运行的时候可以这样写: java -jar d:\test.jar 123 456

相关主题