2006年09月05日

CDKとJOELibの連携 その2

CDKでorg.openscience.cdk.libio.joelib.Convertorクラスを用いるためには、joelib.jarを含めてコンパイルする必要があります。

基本的なコンパイルの手順は、以下のとおりです。

1. cdk-source-20060714.tar.gzを展開する。

2. コンパイルの実行:

 cdk-source-20060714> ant dist-large

この操作で、cdk-source-20060714\dist\jarの下にcdk-svn-2006XXXX.jarができます。

joelib.jarを含めてコンパイルするためには、cdk-source-20060714\jar\libio下にjoelib.jarを置いて、コンパイルするだけでOKだと思ったのですが、コンパイルできませんでした。

 cdk-source-20060714> ant info

によると、"JOELib found: true" になっているので、認識はされているはずなのですが.... 私はantのbuild.xmlをまともに理解できないため、ここで断念しました。

とりあえず、Convertorクラスを使うために、以下の手順を取りました。

1. cdk-source-20060714\src\org\openscience\cdk\libio\joelibの下にConvertor.javaがあるので、適当なフォルダにコピーする(ここではC:\work)。

2. クラスパスにcdk-20060714.jarとjoelib.jarを加えて、Convertor.javaのコンパイルを実行。

 C:\work> javac Convertor.java
 
ただし、Convertor.javaを以下のように修正した。

36行目:
org.openscience.cdk.Element e = ef.getElement(atom.getAtomicNum());
-> org.openscience.cdk.Element e = (Element)ef.getElement(atom.getAtomicNum());

173行目:
convertedBond.setBegin(convert(bond.getAtomAt(0)));
-> convertedBond.setBegin(convert((Atom)bond.getAtomAt(0)));

174行目:
convertedBond.setEnd(convert(bond.getAtomAt(1)));
-> convertedBond.setEnd(convert((Atom)bond.getAtomAt(1)));

252行目:
converted.addAtom(convert(mol.getAtomAt(i), coordType));
-> converted.addAtom(convert((Atom)mol.getAtomAt(i), coordType));

import org.openscience.cdk.Element の追加

この操作で、Convertor.classができる。

3. Convertor.classをcdk-20060714.jarに加える。

 > mkdir tmp
 > copy cdk-20060714.jar tmp
 > cd tmp
 > jar xvf cdk-20060714.jar
 > mkdir org\openscience\cdk\libio\joelib
 > copy C:\work\Covertor.class org\openscience\cdk\libio\joelib
 > rm cdk-20060714.jar
 > jar cvf cdk-new.jar *

jarのオプションを使えば、もう少しスマートな方法があると思いますが、今回はこのように行いました。

以上の操作で作成されたcdk-new.jarを用いれば、Convertorクラスが利用できます。


banner_02.gif
人気ブログランキング(クリックして応援してね)

posted by わばのり at 12:44| Comment(0) | TrackBack(0) | CDK | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。