注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

饥民2011

一直在搬砖

 
 
 

日志

 
 
 
 

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

2014-02-12 19:32:30|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一, 什么是jar包

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

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


二, jar包的作用.

jar包的作用主要分两点

1.  用于发布产品.   

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

2.   方便项目管理

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



三, 如何生成jar包.

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



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

  1. package pkg1.pkg2;  
  2.   
  3. public class Test_jar1{  
  4.     private int i;  
  5.   
  6.     public Test_jar1(int i){  
  7.         this.i = i;  
  8.     }  
  9.   
  10.     public void f(){  
  11.         System.out.printf("Test_jar: i is %d !\n"this.i);  
  12.     }  
  13. }  


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

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


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

  1. javac -d . Test_jar1.java  

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

  1. gateman@TFPC jar $ tree  
  2. .  
  3. |-- pkg1  
  4. |   `-- pkg2  
  5. |       `-- Test_jar1.class  
  6. `-- Test_jar1.java  
  7.   
  8. 2 directories, 2 files  

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

执行如下命令:

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

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


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



四, 如何使用jar包.

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

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

例如我就放在目录:

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

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


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

  1. gateman@TFPC Java_1 $ echo $CLASSPATH  
  2. .:/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个类测试这个包:

  1. package Package_kng;  
  2.   
  3. import pkg1.pkg2.*;  
  4.   
  5. public class Pkg_1{  
  6.     public static void f(){  
  7.         Test_jar1 t = new Test_jar1(2);  
  8.         t.f();    
  9.     }  
  10. }  

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


测试通过:

  1. [java] Test_jar: i is 2 ! 
  评论这张
 
阅读(102)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017