您的位置:首页 > 编程语言 > Java开发

关于java和jar命令的几点心得

2013-01-17 14:49 253 查看
现在基于java程序的工具是漫天飞,以至于我们都忘记了该怎样在dos下用java和jar的命令

如果不是工具出了点问题,我想我还会错过纯 dos下的命令

java命令:java,javac,javaw没什么好说的

关键是jar命令,也就是关于.class文件的命令,进入dos 输入jar会出现相应的 jar参数,用的最多的应该是

-c 建立心的归档

-m包含manifest.mf文件的详细信息

-f指定心得归档名称

举个简单的例子,HelloWorld

1

public class HelloWorld{

public static void main(String[] args){

System.out.println("Hi, Hello World!");

}

}

这是一个HelloWorld.class 文件

2

javac HelloWorld.java

生成Helloworld.class文件,这才是我们要用的文件

3

打包成jar文件,用于执行的文件,当然是在当前的目录下,命令格式为 jar cvf HelloWorld.jar HelloWorld.class

执行成功以后发现在当前的文件下多了个Helloworld.jar 文件,我们可以用压缩包工具解压一下 发现里面有两个文件,一个是HelloWorld.class文件,另一个是meta-inf文件,打开meta-inf,其下有一个manifest,mf 文件,这个就是我们需要建成可执行jar文件所必须的信息,用ue打开后有如下代码:

Manifest-Version: 1.0

Created-By: 1.3.1_02 (Sun Microsystems Inc.)

这不是我们要的最终文件,用ue修改成

Manifest-Version: 1.0

Created-By: 1.3.1_02 (Sun Microsystems Inc.)

Main-Class: HelloWorld

注意: 冒号后面都有一个空格

保存后我们把它剪切拷贝到HelloWorld.jar的目录下,这是后有两种方法生成可执行jar

一 删除 HelloWorld .jar 在dos下命令 jar cmf HelloWorld.jar manifest.mf HelloWorld .class

注意: dos下虽然不分大小写,但是这个class文件一定要区分大小写,因为.mf文件里面的声明是区分的,不然会显示 类错误的信息(我曾经上了一次当)

方法二:jar umf MANIFEST.MF HelloWorld.jar u的意思是更新

说的这里一个完整的可执行jar文件算是完成了,怎么执行呢?看下面命令

java -jar HelloWorld.jar

haha 是否输出了“helloworld”呢

为了方便用户使用我们最好做一个批处理文件,如下:

@echo

cls

set classpath=./mainApp.jar;//换成你的JAR包名

java com.jufeng.test.FrameApp //换成你的main方法类

pause

其实过程不是很复杂,关键就是细心,还有就是大小写的地方还是和文件名相对应最好,省的麻烦,再一个就是路径问题一定要分清

附:

1.将应用程序压缩为jar文件

可以使用jar.exe把一些文件压缩成一个JAR文件,来发布我们的应用程序。我们可以把java应用程序中涉及到的类压缩成一个JAR文件,比如Tom.jar,然后使用java解释器(使用参数-jar)执行这个压缩文件,或用鼠标双击该文件,执行这个压缩文件。

java -jar Tom.jar

假设应用程序中有两个类A、B,其中A是主类,生成一个JAR文件的步骤如下:

(1)首先,用文本编辑器(比如Windows下的记事本)编写一个清单文件Mymoon.mf:

Manifest-version: 10

Main-Class: A

Created-By: 1.2.2(sun Microsystems Inc.):

比如,保存Mymoon.mf到D:\test。需要注意的是在编写清单文件时,在“Manifest-version:”和“1.0”之间、“Main-Class:”和主类“A”之间,以及“Created-By:”和“1.2.2”之间必须有且只有一个空格。

(2)生成JAR文件

D:\test\jar cfm Tom.jar Mymoon.mf A.class B.class

其中参数c边式要生成一个新的JAR文件;f表示要生成的JAR文件的名字;m表示文件清单文件的名字

注:如果机器安装过WinRAR解压软件,并将.jar文件与该解压缩软件做了关联,那么Tom.jar文件的类型是WinRAR,使得Java程序无法运行。因此,我们在发布软件时,还应该再写一个有如下内容的bat文件Tom.bat:

javaw -jar Tom.jar

补充:

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

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.

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shili150/archive/2008/03/03/2142383.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: