jar包的生成和使用简单例子


一, 什么是jar包

java中, 源代码文件是*.java,   编译后就生成若干class文件.     这些class文件可以被各平台的jvm虚拟机执行.

java还提供1个工具, 可以将这些class文件打包成若干个包裹.  这些包裹就是所谓的jar包了.


二, jar包的作用.

jar包的作用主要分两点

1.  用于发布产品.   

      比如你写了若干个类, 但是并不想公开源代码,  你可以把编译出的class文件打包成jar包, 附加上说明书发布.

2.   方便项目管理

       项目中, 可以把公共常用的, 不常改动的class文件按照分类规则打包成若干个jar包.



三, 如何生成jar包.

下面用1个简单例子来说明.



首先在任意目录编写1个简单的类 Test_jar1.java

package pkg1.pkg2;

public class Test_jar1{
	private int i;

	public Test_jar1(int i){
		this.i = i;
	}

	public void f(){
		System.out.printf("Test_jar: i is %d !\n", this.i);
	}
}


可以见到我为这个类添加了1个包层: pkg1.pkg2

也就是说这个类是属于pkg2包的, 而pkg2包是属于pkg1包的.  这里的包可以简单地理解成文件夹..


接下来在当前目录执行下面的编译命令:

javac -d . Test_jar1.java

那么命令就会把源代码文件编译成Test_jar1.class文件, 并放入pkg1/pkg2文件夹中(自动生成)

gateman@TFPC jar $ tree
.
|-- pkg1
|   `-- pkg2
|       `-- Test_jar1.class
`-- Test_jar1.java

2 directories, 2 files

也就是说 pkg1 这个文件夹就是我们编译出来的类文件包.     我们需要把这个文件夹打包成1个jar包.

执行如下命令:

jar cvf 包名.jar 你想打包的包目录

gateman@TFPC jar $ jar cvf Test_jar.jar pkg1/
已添加清单
正在添加: pkg1/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: pkg1/pkg2/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: pkg1/pkg2/Test_jar1.class(输入 = 581) (输出 = 378)(压缩了 34%)
gateman@TFPC jar $ ls
pkg1  Test_jar1.java  Test_jar.jar
gateman@TFPC jar $ 


可以见到执行命令后, 当前目录多了1个Test_jar.jar 文件,  这个就是生成出来的jar包.



四, 如何使用jar包.

一般项目都有个位置专门存放jar包.

在这里我们可以把刚才生成的jar包Test_jar..jar搬到任意位置.

例如我就放在目录:

/home/gateman/Studies/Java/java_start/Java_1/jar/generated

gateman@TFPC generated $ pwd
/home/gateman/Studies/Java/java_start/Java_1/jar/generated
gateman@TFPC generated $ ls
Test_jar.jar


然后修改/etc/profile , 把这个jar包的full路径,  添加到CLASSPATH 这个环境变量中.

gateman@TFPC Java_1 $ echo $CLASSPATH
.:/usr/lib/jvm/java-7-sun/lib:/usr/lib/jvm/java-7-sun/jre/lib:/usr/share/ant/lib/ant-launcher.jar:/home/gateman/Studies/Java/java_start/Java_1/jar/generated/Test_jar.jar

注意要带上包名


如果是ant编译运行的, 最好吧包路径也写进build.xml中.




然后在编写1个类测试这个包:

package Package_kng;

import pkg1.pkg2.*;

public class Pkg_1{
	public static void f(){
		Test_jar1 t = new Test_jar1(2);
		t.f();	
	}
}

注意开头import 那个包就ok了.


测试通过:

[java] Test_jar: i is 2 !























  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nvd11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值