在我们可以安顿一个Bean到一个可激活Bean的可视化构建东西中前,它必需被放入到尺度的Bean容器里,也就是包括Bean类和一个暗示“这是一个Bean”的清单文件的JAR(Java ARchive,Java文件)文件中。清单文件是一个简朴的紧随事件布局的文本文件。对付BangBean而言,清单文件就像下面这样:
Manifest-Version: 1.0
Name: bangbean/BangBean.class
Java-Bean: True
个中,第一行指出清单文件布局的版本,这是SUN公司在好久以前发布的版本。第二行(空行忽略)对文件定名为BangBean.class。第三行暗示“这个文件是一个Bean”。没有第三行,措施构建东西不会将类作为一个Bean来承认。
独一难以处理惩罚的部门是我们必需必定“Name:”字段中的路径是正确的。假如我们回首BangBean.java,我们会看到它在package bangbean(因为存放类路径的子目次称为“bangbean”)中,而且这个名字在清单文件中必需包罗封装的信息。别的,我们必需安顿清单文件在我们封装路径的根目次上,在这个例子中意味着安顿文件在bangbean子目次中。这之后,我们必需从同一目次中挪用Jar来作为清单文件,如下所示:
jar cfm BangBean.jar BangBean.mf bangbean
这个例子假定我们想发生一个名为BangBean.jar的文件而且我们将清单放到一个称为BangBean.mf文件中。
我们大概会想“当我编译BangBean.java时,发生的其它类会怎么样呢?”哦,它们会在bangbean子目次中被中止,而且我们会留意到上面jar呼吁行的最后一个自变量就是bangbean子目次。当我们给jar子目次名时,它封装整个的子目次到jar文件中(在这个例子中,包罗BangBean.java的源代码文件——对付我们本身的Bean我们大概不会去选择包括源代码文件。)别的,假如我们改变主意,解开打包的JAR文件,我们会发明我们清单文件并不在内里,但jar建设了它本身的清单文件(部门按照我们的文件),称为MAINFEST.MF而且安顿它到META-INF子目次中(代表“meta-information”)。假如我们打开这个清单文件,我们同样会留意到jar为每个文件插手数字签名信息,其布局如下:
Digest-Algorithms: SHA MD5
SHA-Digest: pDpEAG9NaeCx8aFtqPI4udSX/O0=
MD5-Digest: O4NcS1hE3Smnzlp2hj6qeg==
一般来说,我们不必担忧这些,假如我们要做一些修改,可以修改我们的原始的清单文件而且从头挪用jar觉得我们的Bean建设了一个新的JAR文件。我们同样也可以简朴地通过增加其它的Bean的信息到我们清单文件来增加它们到JAR文件中。
值得留意的是我们或者需要安顿每个Bean到它本身的子目次中,因为当我们建设一个JAR文件时,分派JAR应用目次名而且JAR安排子目次中的任何文件到JAR文件中。我们可以看到Frog和BangBean都在它们本身的子目次中。
一旦我们将我们的Bean正确地放入一个JAR文件中,我们就可以携带它到一个可以激活Bean的编程情况中利用。利用这种要领,我们可以从一种东西到另一种东西间瓜代调动,但SUN公司为Java Beans提供了免费高效的测试东西在它们的“Bean Development Kit,Bean开拓东西”(BDK)称为“beanbox”。(我们可以从www.javasoft.com处下载。)在我们启动beanbox前,安排我们的Bean到beanbox中,复制JAR文件到BDK的“jars”子目次中。