我正在尝试在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/