2009-11-19 9 views
2

Мне сложно работать, когда jython корректно работает при запуске из плагина Eclipse. У меня есть простая фабрика объектов, которая загружает модуль python, соответствующий интерфейсу Java. Все это прекрасно работает в автономном режиме. Однако, когда я упаковываю это как плагин eclipse, я получаю другую ошибку, основанную на нескольких переменных:Использование Jython От плагина Eclipse

Учитывая, что мой пакет java является com.foo.

1) Если я бегу без изменения пути, я получаю: "Нет модуля с именем Foo"

2) Если я затем добавить свои Java банки к sys.path с помощью:

PythonInterpreter interp = new PythonInterpreter(null, new PySystemState()); 
PySystemState sys = Py.getSystemState(); 
sys.path.append(new PyString("myjar...")); 

Я получаю:

а) конструктор моего Python модуля вызывается (печать в CONSTR показывает вверх)
б) я получаю PySingleton от вызова к tojava. Поле имени - «Ошибка».

3) На этом этапе я пытаюсь сделать classpath точно таким же в Eclipse как автономный, поэтому я добавляю свои jars в путь к классам во время выполнения непосредственно перед вызовом интерпретатора python.

я получаю мое любимое сообщение об ошибке: SystemError: инициализация автоматического прокси должно происходить только на прокси-классов

Это один сводит меня с ума. Я был впечатлен тем, как быстро я получил это в автономном режиме. Должны ли быть запущены под Eclipse? Я считаю, что это должно быть только вопросом класса, но до сих пор это, похоже, не так.

ответ

5

Наконец-то изобразите этот. Вот то, что я должен был сделать:

1) Я использовал JSR223 ScriptEngine вместо PythonInterpreter:

engine.get(module_name); //gets the class object of the module getConstructors[0].newInstance(null) on the class to get an object
//cast it to your interface!

2) Убедитесь, что ваш плагин Eclipse, не упакован в баночку (в 3,5 set Eclipse-BundleShape: dir)
3) Добавьте jython.jar и любые пути, в которых вы хотите найти модули для вашего пути Runtime Classpath в манифесте.

Надеюсь, это поможет кому-то.

+2

Ваш вопрос не был связан с моей проблемой, но 3) Добавьте jython.jar и любые пути, в которых вы хотите найти модули для вашего пути Runtime Classpath в манифесте. этот комментарий помог мне так сильно, используя модули python в eclipse. –

Смежные вопросы