我正在尝试在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)”返回无。谁能告诉我为什么?我发现以下解决方法有效(绕过查找):

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


我想进一步了解这个问题。谢谢。

最佳答案

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

尝试一下,看看它是否对您有用,至少对我来说,它返回org.gephi.project.impl.ProjectControllerImpl的实例


  导入系统
  
  从org.openide.util导入Lookup
  
  导入java.lang.Class
  
  导入org.gephi.project.api.ProjectController作为ProjectController
  
  pc = Lookup.getDefault()。lookup(java.lang.Class.forName(“ org.gephi.project.api.ProjectController”))
  
  打印(张)





  使用调用(更改到gephi的安装位置)
  
  设置CLASSPATH =%CLASSPATH%; C:\ java \ gephi-toolkit-0.7.2014-all \ gephi-toolkit.jar
  
  jython.bat gephi_test.jy


你应该看到类似

C:\ jython2.5.2> jython.bat gephi_test.jy

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

关于java - 在Jython(和Gephi)中查找,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5954852/

10-09 01:51