
| ■ | Jythonの簡単なTips |
arr = jarray.array( (1,3,4), 'i' ) result.setColumnFilter(arr) |
for e in result.getData(y):
print e + "\t",
|
●JythonとJavaのboolean
Pythonには内部的にBooleanにあたる型がありませんが、
Javaのboolean変数や、booleanを返すメソッドの扱いはどうなるのでしょう。
Jythonでは、Javaのbooleanを「真=1、偽=0」という整数を標準の表現として使います。
従って、booleanを返すJavaメソッドの戻り値をPython変数に代入すると、
真なら整数の1、偽なら0となります。
●モジュールのパス
純粋にPythonで書かれたモジュールは、Jythonが解釈実行するPythonコードの中からインポートできます。
そのときに使われるモジュールのパスは、$JYTHON_HOME/registry の中で
python.path = /usr/local/lib/python2.1/site-packagesのように指定できます。ただし、OS機能に強く依存する一部のパッケージ(pwdなど) はJythonではサポートされていません。
●PyObjectオブジェクトの正確なクラス名を知る
Java世界では、
Pythonコードの変数の値をインタープリタのgetメソッドで取得することができます。
このメソッドが返すデータ型はPyObjectですが、
実際にはこれらのオブジェクトは、Python世界でのデータ型に応じて、
PyInteger、PyLong、PyString、PyTuple、PyListなど、
PyObjectのサブクラスのインスタンスとして作られています。
各オブジェクトの正確なクラスをJava世界で知りたい場合には、次のようにします。
PyObject obj = interp.get("varname");
String className = obj.__class__.__name__;
System.out.println("クラス名は" + className + "です。");
|
●外部JARライブラリとCLASSPATH
jython.jar以外の外部JARライブラリをインポートできるようにするには、
環境変数CLASSPATHをセットしておきます。
ログインシェルではなく、jythonスクリプト(またはjython.bat)
にCLASSPATHのセットをしておく方法もあります。
この場合、
jython.jarを$JAVA_HOME/jre/lib/extに置かないようにする必要があります。
$JAVA_HOME/jre/lib/extからjython.jarをロードさせると、
クラスローダの関係でCLASSPATHで通した外部JARライブラリをロードできないようです。
セクションのサブメニューに戻る
(first uploaded 2002/03/10 last updated 2004/05/08)