2015-11-23 69 views
0

我試圖做一個Eclipse的插件內用Jython的..插件構建和啓動好,但只要我使用任何的python-的東西,會發生以下情況:用Jython在eclipse插件

!ENTRY org.eclipse.ui 4 0 2015-11-23 10:49:26.860 
!MESSAGE Unhandled event loop exception 
!STACK 0 
java.lang.NoClassDefFoundError: org/python/core/PyObject 
    at cern.silecs.view.wizards.DesignClassWizard.performFinish(DesignClassWizard.java:47) 
    at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:853) 
    at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:438) 
    at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:619) 
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248) 
............ 

我使用maven來獲取我的依賴關係。目前,我有以下Jython的條目在pom.xml:

<dependency> 
    <groupId>org.python</groupId> 
    <artifactId>jython-standalone</artifactId> 
    <version>2.7.0</version> 
</dependency> 

我有例如一個java文件用下面的代碼,其建立的良好:

... 
    import org.python.core.PyObject; 
    ... 
    PyObject someFunc = interpreter.get(funcName); 
    ... 

我甚至可以CTRL +點擊「的PyObject」,看到了類的源代碼。所以對我來說,它看起來像所需的依賴關係是可用的,但在運行時它們沒有找到。

我是否需要傳遞一些環境變量?我已經嘗試了一些,但他們似乎沒有任何區別。

我需要在MANIFEST.MF的「Bundle-ClassPath:」中指定一些特殊的東西嗎?

我已經花了很多時間試圖弄清楚事情......在我浪費更多時間之前,我決定尋求你的幫助。任何提示我都會很幸運!

+1

您在Eclipse插件中使用的所有內容都必須包含在插件或另一個聲明爲依賴項的插件中。我不知道jython,但有人可能已經將它打包在一個插件中,否則你將不得不在你的插件中包含所有東西。 –

+0

感謝您的提示!我已經安裝了「pydev」,這似乎是正確的插件。所以我將「org.python.pydev.jython」和所有其他與pyton相關的插件添加到「所需插件列表」中。這在MANIFEST.MF中添加了一些行到「Require-Bundle」。但是它對「NoClassDefFoundError」沒有幫助。 – Alex

回答

0

好吧,最後我解決了問題。看起來eclipse並沒有完全集成由maven自動下載的jar文件。

1.)在「runtime」標籤中有一個「Classpath」框架。我需要添加一個jython獨立的jar文件,它由maven下載。 2.)右鍵單擊Project - > Properties - > Java Build Path - > Libraries,並添加jython獨立的jar文件。