在Jython(和Gephi)中查找

时间:2011-05-10 18:47:11

标签: java jython lookup

我正在尝试在Jython中使用Gephi Toolkit,但是遇到了问题。代码如下:

import sys
sys.path.append('gephi-toolkit.jar')
from org.openide.util import Lookup
import org.gephi.project.api.ProjectController as ProjectController

pc = Lookup.getDefault().lookup(ProjectController)
workspace = pc.newProject()

print "done."

它永远不会到达最后一行。而是给出以下错误:

Traceback (most recent call last):
  File "standalone.py", line 9, in <module>
    workspace = pc.newProject()
AttributeError: 'NoneType' object has no attribute 'newProject'

显然,“Lookup.getDefault()。lookup(ProjectController)”返回None。谁能告诉我为什么?我发现以下解决方法有效(绕过Lookup):

...
import org.gephi.project.impl.ProjectControllerImpl as ProjectControllerImpl
pc = ProjectControllerImpl()
workspace = pc.newProject()

我想更多地了解这个问题。感谢。

1 个答案:

答案 0 :(得分:1)

我认为这是因为查找需要引用java类,而不是jython包装器

尝试这个,看看它是否适合你,对我来说,至少它返回一个org.gephi.project.impl.ProjectControllerImpl的实例

  

导入sys

     

来自org.openide.util import Lookup

     

import java.lang.Class

     

将org.gephi.project.api.ProjectController导入为ProjectController

     

pc = Lookup.getDefault()。lookup(java.lang.Class.forName(“org.gephi.project.api.ProjectController”))

     

打印(PC)


  

使用调用(更改为安装gephi的地方)

     

设置CLASSPATH =%CLASSPATH%; C:\ java \ gephi-toolkit-0.7.2014-all \ gephi-toolkit.jar

     

jython.bat gephi_test.jy

你应该看到像

这样的东西

C:\ jython2.5.2&gt; jython.bat gephi_test.jy

org.gephi.project.impl.ProjectControllerImpl@8ddb93