我正在尝试将自己的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()
答案 0 :(得分:2)
关于能见度。你的班级是package-private。如果
,它将起作用python.security.respectJavaAccessibility = false
被添加到Jython注册表中。请参阅http://www.jython.org/jythonbook/en/1.0/appendixA.html?highlight=accessibility#registry-properties。
或者让课程公开。
答案 1 :(得分:0)
您必须先导入Jython代码中的Java类,然后才能使用它。类似的东西:
from pos import Test
test = Test()
print 'Name = ', test.getName()
请参阅Chapter 8 of the Jython Book以了解导入路径等在Jython中的工作原理。