Поиск в Jython (и Gephi)

Я пытаюсь использовать Gephi Toolkit в Jython, но у меня проблемы с этим. Код ниже:

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. Кто-нибудь может сказать мне, почему? Я обнаружил, что работает следующий обходной путь (который обходит поиск):

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

Я хотел бы узнать больше об этой проблеме. Благодарю.

1 ответ

Решение

Я думаю, это потому, что для поиска нужна ссылка на класс java, а не оболочка jython

попробуйте это и посмотрите, работает ли он для вас, для меня по крайней мере он возвращает экземпляр org.gephi.project.impl.ProjectControllerImpl

импорт системы

из org.openide.util import 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

Другие вопросы по тегам