5

独自の Java クラスを jython コードにインポートしようとしています。.java を .class ファイルにコンパイルし、.class ファイルを .jar に入れました。次に、-Dpython.path="path/to/jar/my.jar" を使用して、この .jar ファイルを含めます。これまでのところ、私のプログラムを起動するときに苦情はありません。

しかし、Java クラスを使用するコードの部分に到達すると、Java クラスの関数が見つからないように見えます。私は次のようになります AttributeError

AttributeError: 'pos.Test' object has no attribute 'getName'

どんな提案でも大歓迎です!(以下のコードサンプル。)

Java コード:

package pos;

class Test{

    private String name;

    public Test(){
        name = "TEST";
        System.out.println( "Name = " + name );
    }

    public String getName(){
        return name;
    }   
}

Jython コード スニペット:

import pos.Test

...

test = pos.Test()

print 'Name = ', test.getName()
4

2 に答える 2

3

視認性についてです。あなたのクラスはpackage-privateです。次の場合に機能します

python.security.respectJavaAccessibility = false

Jython レジストリに追加されます。https://www.jython.org/registry.htmlを参照してください。

または、クラスを公開します。

于 2013-04-09T20:10:18.677 に答える
0

Java クラスを使用する前に、Jython コードに Java クラスをインポートする必要があります。何かのようなもの:

from pos import Test

test = Test()
print 'Name = ', test.getName()

インポート パスなどが Jython でどのように機能するかを理解するには、Jython Book の第 8 章を参照してください。

于 2013-04-09T18:35:26.477 に答える