それでは、java.awtの主要なcomponentを、まとめてbeansにしてみましょう。 まず、次のようなスクリプトでjavaのソースを生成します。先のMyButtonと同じく、 java.awtのクラスをそのまま使っています。
#!/bin/sh
for name in Button Canvas Checkbox Choice Label List ScrollPane TextArea TextField
do
echo "public class My${name} extends java.awt.${name} {}" > My${name}.java
done
こうして出来たソースを、javac *.java でコンパイルします。
後は、manifestファイルを作って、JARファイルをつくるだけですが、これも 面倒なので次のようなスクリプトを作りました。
#!/bin/sh
MANIFEST=manifest.tmp
COMMAND=jar.sh
echo -n "jar cvfm MultiBeans.jar $MANIFEST " > $COMMAND
for name in Button Canvas Checkbox Choice Label List ScrollPane TextArea TextField
do
echo "Name: My${name}.class" >> $MANIFEST
echo "Java-Bean: True" >> $MANIFEST
echo "" >> $MANIFEST
echo -n "My${name}.class " >> $COMMAND
done
このスクリプトで、次のようなmanifestファイルが生成されます。
manifestファイル ================================================================== Name: MyButton.class Java-Bean: True Name: MyCanvas.class Java-Bean: True Name: MyCheckbox.class Java-Bean: True Name: MyChoice.class Java-Bean: True Name: MyLabel.class Java-Bean: True Name: MyList.class Java-Bean: True Name: MyScrollPane.class Java-Bean: True Name: MyTextArea.class Java-Bean: True Name: MyTextField.class Java-Bean: True ==================================================================
こうして、manifestファイルで指定すれば、一つのJARファイルに複数のbeansを 詰め込むことが出来ます。