黑马程序员技术交流社区
标题: 关于手动将Java类打成Jar包的总结 [打印本页]
作者: 刘艳伟 时间: 2012-11-25 11:15
标题: 关于手动将Java类打成Jar包的总结
本帖最后由 刘艳伟 于 2012-11-26 10:44 编辑
为了方便程序的运行,有时我们需要将Java类打成Jar包的形式,在此,我将分别讲述无包名和有包名的类的不同的打包方式。
第一种:无包名
比如将Hello.java,B.java,C.java文件打包为Jar文件。
Hello.java
public class Hello{ public static void main(String args[]){ System.out.println("Hello World!!!"); } } |
B.java
public class B{}
C.java
public class C{}
1、编译
E:\lianxi>javac Hello.java B.java C.java
2、编写文件清单MF文件,比如起名为:MANIFEST.MF [名字可任意起,此处如此命名只为了和Java自动生成的清单文件名称一致,不管你起什么名字,生成的Jar包中的清单文件名字都是MANIFEST.MF;后缀名大小写无碍]
Manifest-Version: 1.0
Class: B C Main-Class: Hello Created-By: 1.7.0 (Oracle Corporation) |
注:红色前面是有空格的,没有空格会出错,空格数目不限。属性名大小写均可,第三句可有可无,配置清单中两行之间不能有空行。
3、生成Jar文件
E:\lianxi>jar cfm Hello.jar MANIFEST.MF Hello.class B.class C.class
其中参数c表示要生成一个新的Jar文件,f表示要生成的Jar文件的名字,m表示包含指定清单文件中的清单信息。
生成的Jar包的内部格式为
自动生成的MANIFEST.MF中的内容为:
Manifest-Version: 1.0
Class: B C
Created-By: 1.7.0 (Oracle Corporation)
Main-Class: Hello
4、运行
E:\lianxi>java –jar Hello.jar
5、查看Jar文件中的内容
E:\lianxi>jar tf Hello.jar
6、解压Jar文件
E:\lianxi>jar xf Hello.jar
7、更新Jar文件,将一个新的类文件增加到Jar包中
E:\lianxi>jar –uf Hello.jar D.class
此时生成的Jar包的内部格式为
MANIFEST.MF中的内容为:
Manifest-Version: 1.0
Class: B C
Created-By: 1.7.0 (Oracle Corporation)
Main-Class: Hello
可以看到被添加的新类已经添加到Jar包中了,但是在清单文件中并没有添加。○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○
温馨提示:
被打包后的Jar文件名是可以随意起的,并且文件清单的后缀可以是.txt的,经实验能成功运行。
第二种:有包名
如果要打包的类带有包名,比如
package com.itheima public class Hello{ public static void main(String args[]){ System.out.println("Hello World!!!"); } } |
则打包的过程为:
1、编译
E:\lianxi>javac –d . Hello.java
2、编写文件清单MANIFEST.MF 文件
Manifest-Version: 1.0 Main-Class: com.itheima.Hello Created-By: 1.7.0 (Oracle Corporation) |
3、生成Jar包
E:\lianxi>jar cf test.jar com
此时即使我们不写文件清单,也是可以正确打包的。对于带有包名的类,生成Jar包时直接用最顶层包名,后面不要再跟路径或是文件名,否则无法打包,但要记住当前DOS的运行位置为顶层包名的上一级目录,比如com在E:\lianxi下,则打包时的情况为E:\lianxi>jar cf test.jar com
4、运行
带有包名的Jar包在运行时有些特殊,和无包名类不一样,如下
E:\lianxi>java -cp Hello.jar com.itheima.Hello
或者
E:\lianxi>java -classpath Hello.jar com.itheima.Hello
○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○○●○●○
温馨提示:
在DOS中输入jar,回车即可列出打包时的所有参数;
在DOS中输入java,回车即可列出运行Java类的所有参数。
作者: 许庭洲 时间: 2012-11-26 07:26
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |