正 文

包装你的jar文件可以解决一些类路径问题


www.7dspace.com  更新日期:2006-1-29 6:51:54  七度空间


对同样的类安装有许多不同的版本,这是件很令人头痛的事。以下介绍的是一种与之有关的方法。

类路径会引起许多麻烦,这些麻烦在当引用一些java类时会出现。与类路径有关的问题之一是,同一类的许多不同版本可能同时出现在类路径中,虚拟机会装载它所发现的第一个版本。当然也会有无法避免这一情况的时候,例如当你的应用程序是在一个容器里面运行的时候。包装的 jar文件可以对这个问题进行局部的补救。

当你在应用程序中使用包装的jar文件时,类装载器可以确保同一个包中所有的类都是从同一个jar文件中装载得来的。例如,假定类com.acme.A是从包装的文件acme.jar中装载的。接下来,该类装载器会被指示去装载类com.acme.B。由于A与B是在同一包中,该类装载器会试着从acme.jar装载类B。如果在acme.jar中找不到类B,而在其它地方可以找到,则该类装载器就会抛出 SecurityException了。

包装一个jar文件很简单,就如同在该jar的manifest文件中提供一个条目一般简单。以下是一些命令,它们能帮助你创造一个包装的jar文件,这个jar文件包含com目录下的所有类以及它的子目录的所有包:

jar cmf mymanifest.txt myjar.jar com

where mymanifest.txt contains:

Manifest-Version: 1.0

Sealed: true

现在,该类装载器把整个jar文件都看成是包装的了,这个jar文件由它使用。尽管包装你的jar文件并不能解决所有的问题,然而它确实对你有益处。这也是一个好习惯,我们可以试着养成这样一个习惯,所以赶快让包装jar文件成为你的开发系统中的一部份吧。对于包装,还有更多的选择;例如,你可以包装一些包而不包装其它的。

本文作者:David Petersheim是Genscape公司的一位应用开发主任。


上一篇:比较java.io.Externalizable和java.io.Serializable
下一篇:让Maxthon插件为你的浏览器添色彩
标题:包装你的jar文件可以解决一些类路径问题 作者:David Petersheim 来源:开发者在线
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐