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

您必须先在 Jython 代码中导入 Java 类,然后才能使用它。就像是:

from pos import Test

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

请参阅Jython Book 的第 8 章以了解导入路径等如何在 Jython 中工作。

于 2013-04-09T18:35:26.477 回答