仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 872|回复: 9
打印 上一主题 下一主题

[学习教程] 来看怎样从JAR和ZIP档案文件中提取Java资本

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。
多半java程序员都十分分明利用jar文件将构成java办理计划的各类资本(即.class文件、声响和图象)打包的长处。刚入手下手利用jar文件的人常问的一个成绩是:“怎样从jar文件中提取图象呢?”本文将回覆这个成绩,并会供应一个类,这个类使从jar文件中提取任何资本变得十分复杂!
加载gif图象
假定我们有一个jar文件,个中包括我们的使用程序要利用的一组.gif图象。上面就是利用JarResources会见jar文件中的图象文件的办法:
JarResourcesJR=newJarResources("GifBundle.jar");
Imagelogo=Toolkit.getDefaultToolkit().createImage(JR.getResources("logo.gif"));
这段代码申明我们能够创立一个JarResources对象,并将其初始化为包括我们要利用的资本的jar文件--images.jar。随后我们利用JarResources的getResource()办法未来自logo.gif文件的原始数据供应给awtToolkit的createImage()办法。
定名申明
JarResource是一个十分复杂的示例,它申明了怎样利用java所供应的各类功效来处置jar和zip档案文件。
事情体例
JarReources类的主要数据域用来跟踪和存储指定jar文件的内容:
publicfinalclassJarResources{
 publicbooleandebugon=false;
 privateHashtablehtsizes=newHashtable();
 privateHashtablehtjarcontents=newHashtable();
 privateStringjarfilename;
如许,该类的实例化设置jar文件的称号,然后转到init()办法完玉成部实践事情。
publicJarResources(Stringjarfilename){
   this.jarfilename=jarfilename;
   init();
 }
如今,init()办法只将指定jar文件的全部内容加载到一个hashtable(经由过程资本名会见)中。
这是一个相称有效的办法,上面我们对它作进一步的剖析。ZipFile类为我们供应了对jar/zip档案头信息的基础会见办法。这相似于文件体系中的目次信息。上面我们列出ZipFile中的一切条目,并用档案中每一个资本的巨细添充htsizeshashtable:
privatevoidinit(){
   try{
     //extractsjustsizesonly.
     ZipFilezf=newZipFile(jarFileName);
     Enumeratione=zf.entries();
     while(e.hasMoreElements()){
       ZipEntryze=(ZipEntry)e.nextElement();
       if(debugOn){
        System.out.println(dumpZipEntry(ze));
       }
       htSizes.put(ze.getName(),newInteger((int)ze.getSize()));
     }
     zf.close();
<p>
进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
分手快乐 该用户已被删除
沙发
发表于 2015-1-20 18:06:16 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
活着的死人 该用户已被删除
板凳
发表于 2015-1-29 13:54:53 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
再见西城 该用户已被删除
地板
发表于 2015-2-4 19:55:43 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-10 05:30:39 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
老尸 该用户已被删除
6#
发表于 2015-2-28 21:42:38 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-7 14:23:48 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
莫相离 该用户已被删除
8#
发表于 2015-3-11 18:25:11 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
只想知道 该用户已被删除
9#
发表于 2015-3-11 23:29:45 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
深爱那片海 该用户已被删除
10#
发表于 2015-3-19 16:05:22 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 09:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表