现在基于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.