【问题标题】:AttributeError when accessing member of Java class in Jython在 Jython 中访问 Java 类的成员时出现 AttributeError
【发布时间】:2013-04-01 08:21:04
【问题描述】:

我正在尝试将我自己的 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 代码 sn-p:

import pos.Test

...

test = pos.Test()

print 'Name = ', test.getName()

【问题讨论】:

    标签: java jython attributeerror


    【解决方案1】:

    这是关于可见性。你的班级是package-private。如果

    python.security.respectJavaAccessibility = false
    

    已添加到 Jython 注册表中。见https://www.jython.org/registry.html

    或者公开课程。

    【讨论】:

      【解决方案2】:

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

      from pos import Test
      
      test = Test()
      print 'Name = ', test.getName()
      

      请参阅 Chapter 8 of the Jython Book 以了解导入路径等在 Jython 中的工作原理。

      【讨论】:

      • 抱歉,我应该包含更多代码。我实际上已经在 jython 文件中导入了我的类,我只是没有将它包含在代码 sn-p 中。所以这不是问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 2023-04-04
      • 2021-08-10
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多