JAR进阶 |
| 作者:何先睿 来源:转载 发布时间:2005-7-26 17:37:24 |
|
先对JAR作一下简要介绍,JAR是一种与平台无关的文档格式,全称为Java Archive,翻译成中文叫Java 归档,咋一看,它相当于一种压缩格式,可以把众多的文档合成一个文件,就象ZIP,ACE等,但它所被赋予的能力远不止这些, 首先,它与平台无关,并且兼容性好,就是说不管是windows,还是unix,都是通吃,甚至是IE和netscape之间的不兼容,也能轻松化解,这和java的精神是很相符合的。 再来,它使用户可将多个java小应用程序合并为一个文件作为单个的简单 HTTP事务下载到浏览器中,从而大大提高浏览速度,这在越来越讲究速度的www世界里是很相当具有诱惑力的。 它还提供对applet作者的认证,这只要对JAR进行数字签名便可。 更为精彩的是,如果浏览器信任该认证,那么作为可信任的applet,它便能访问非信任的applet禁止访问的资源,如本地硬盘和网络。 还有一个不似功能的优点,背靠sun,自然是好事天天有。 总而言之是优点多多,前途无量,从它的诞生开始,它就在java的应用中的占着越来越重要的地位,不久JAR将成为分布java applet的标准方法。 这么好的东东,是不是有些相见恨晚,那现在便开始为JAR的进阶准备一些工具,当然必要的是jdk,现在普遍用的版本是1.3,那么就去下一个吧,sun的主机太远,速度也一般般,关键是e文的,目录又深。国内有些网站也提供下载的,速度也挺快,在搜索引擎里面查找一下便有一堆了。最好是准备一个可视化的java编程环境,在windows平台下推荐jbuilder4,Inprise也就borland公司出的,除开资源占得厉害,有些垃圾代码,也挺不错的。至于jbuilder4的下载,也还是去搜索一下吧,还有要对jbuilder熟悉一下,www.94soft.com里面有jbuilder书籍下载,有兴趣就去下一个看看,挺不错的。 现在开始JAR的第一步,jdk提供了jar的工具,就在java所在目录的bin目录下有一个jar.exe的应用程序,可以试着新建一个jar文件: jar cvf test1.jar *.class image c参数表示在标准输出上创建新归档或空归档, v参数表示把添加了一些什么的信息在标准输出上显示, f 参数在这里表示用什么样的jar文件名, 在jbuilder里面新建一个JAR更加方便,wizards菜单的archive builder一步步往下选就可以了。 为了更好的钻研JAR,就从在jbuilder做个applet开始吧,做这样一个东西,在一个面板上有一个按钮,右键单击按钮将弹出一个菜单。 新建一个工程test1.jpr 再新建一个applet applet1.Java 接下来在面板上摆上一个java.awt.button, 再摆上一个java.awt.popupMenu,在popupMenu的编辑面板输入几个选项。 这样控件摆完了,接下来是写相应的事件,源程序如下: package test1; import java.awt.*; import java.awt.event.*; import java.applet.*; public class Applet1 extends Applet { boolean isStandalone = false; PopupMenu popupMenu1 = new PopupMenu(); MenuItem menuItem1 = new MenuItem(); MenuItem menuItem2 = new MenuItem(); MenuItem menuItem3 = new MenuItem(); Button button1 = new Button(); /**Get a parameter value*/ public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } /**Construct the applet*/ public Applet1() { } /**Initialize the applet*/ public void init() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /**Component initialization*/ private void jbInit() throws Exception { menuItem1.setLabel("1"); menuItem2.setLabel("2"); menuItem3.setLabel("3"); button1.setLabel("button1"); file://这是button1的监听事件, button1.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(MouseEvent e) { button1_mousePressed(e); } }); popupMenu1.add(menuItem1); popupMenu1.add(menuItem2); popupMenu1.add(menuItem3); this.add(button1, null); add(popupMenu1); } /**Get Applet information*/ public String getAppletInfo() { return "Applet Information"; } /**Get parameter info*/ public String[][] getParameterInfo() { return null; } void button1_mousePressed(MouseEvent e) { /*通过InputEvent.BUTTON3_MASK对右键的判断 要判断是左键用InputEvent.BUTTON1_MASK, */ int mods=e.getModifiers(); if((mods&InputEvent.BUTTON3_MASK)!=0) { popupMenu1.show(button1,e.getX(),e.getY()); button } } } file://applet1.java is over 运行一下,确实可以看到右键弹出了相应的菜单。 我们现在可以打包并发布了. 选择wizards菜单的archive builder,或者通过new 的archive builder来可视化的创建一个包含这个applet的JAR文件。 需要注意的几点是, 1.archive type 选applet,这个选项并不重要,只是相当于通知一下接下来做的是一个applet的JAR文件包 2.project class and resources选include required class and known resources ,这句理解为待会儿生成的JAR文件包中包含被调用的类文件和需要使用到资源文件。 3.required classes and resources 需添加test1的applet1,新建的JAR文件包默认情况下并不包含所应用到的applet的class文件,需要在这里进行添加,有多少要用到的applet,就应该在这里都添加进去 完成后会发现多出来一个applet的图标,在build后会在其下面多出来一个test1.jar,在JAR的属性栏里是一样可以添加和删除applet的class文件的,只是记得每次重新编译了class文件后都要rebuild这个JAR文件,这是为了让JAR文件中的class也得到及时更新。 双击test1.jar会发现有两个class文件, |
| [] [返回上一页] [打 印] |
|
文章评论 |
