<% Include("/hsphere/local/home/terraint/common.phps");%> Jakarta BCEL -- バイトコード処理ライブラリ -- - BCEL FAQ
BCEL

BCEL

ドキュメント

ダウンロード

参加するには

日本語訳 (Translations)

オリジナル

FAQ

Q: BCELを使って何が出来るのでしょうか?
A: org.apache.bcel.util.BCELifierをご覧下さい。所与のクラスを受け取って、BCELプログラム用に変換(勿論、Javaコードに、です)します。BCELを使って、あるコードがどのように生成されるか、を教えてくれるでしょう。

Q: BCELはスレッドセーフなのでしょうか?
A: BCELは、(わざと)スレッドセーフであるようにデザインされていませんでした。どのようにスレッドセーフのラッパーを構築するかの優れたリファレンスについては、Doug Lea 氏による、"Concurrent Programming in Java"をご覧になってください。

Q: BCELを商用製品に使う事が出来ますか?
A: はい、可能です。BCELは、Apache Licenseに準拠しています。オリジナルの作者とソースの場所(例えばhttp://jakarta.apache.org/bcel/)の明記を条件とします。

Q: (特にXalan (XSLTC)を使用する方に関わりますが) 大きいファイルをコンパイルする際、

    ...
    ClassGenException: Branch target offset too large for short
    
というメッセージが流れてしまいますが?
A: この問題は、JVM内部の制限に依拠しています。gotoなどといった分岐処理の際、オフセットアドレス(訳注:分岐処理を飛ばす行番号の移動数字)をshort integerより大きくすることが出来ないのです。つまり、オフセットは32767以上であってはならないのです。
解決する方法としては、XSLTCが明らかに気にしなくてもよいくらいの中間のホップに枝を分けることがあります。(事実、gotoをgoto_w命令に置き換えることが可能です。しかし、他の場合:goto以外の場合は、何らの手助けにはなりません)

Q:BCELを使って、動的にクラスを作成したり修整したりが可能でしょうか?
A:BCELには、utilパッケージに有益なクラス群が、つまり、ClassLoaderJavaWrapperクラスが含まれています。ProxyCreatorというサンプルをご覧になってください。



Copyright © 1999-2005, Apache Software Foundation
Translated into Japanese by Tetsuya Kitahata , powered by Terra-International, Inc.
<% orig();%>