2009-07-02 96 views
3

我第一次嘗試jython是一個java/jython項目,我正在用pydev在eclipse中編寫。。jython與pydev的.class文件

我創建了一個java項目,然後通過RightClick項目>> pydev >>設置爲...您可以將它變成pydev項目。然後我添加了兩個源文件夾,一個用於java,另一個用於jython,每個源文件夾都有一個包。我將每個文件夾設置爲項目的構建路徑。我想我讓你知道所有這些,希望你能告訴我,不管我是否正確設置了項目。

但真正的問題是:如何將我的jython代碼製作成類文件,以便Java代碼可以使用它?首選的方法是eclipse/pydev會自動爲我做這件事,但我無法弄清楚。在jython用戶指南中提到的某些東西意味着它是可能的,但我無法在任何地方找到它的信息。

編輯:我沒有找到一些信息herehere,但事情並不太順利。

我一直在第二個鏈接的指導非常密切,但我無法弄清楚如何讓jythonc爲我的python類構造函數。

+0

類路徑中的類文件是由jythonc生成的嗎? – seth 2009-07-02 21:02:06

回答

0

繼「在不使用jythonc的情況下從Java訪問Jython」教程之後,可以在java代碼中使用jython模塊。唯一棘手的是* .py模塊不會被編譯爲* .class文件。所以它變成了java內部異國情調的腳本。當然,性能可能會劣化jythonc的py模塊,但正如我從jython社區頁面獲得的,他們不會支持jythonc(事實上它已經將它放在jython2.5.1中)。

所以,如果你決定遵循非jythonc方法,上面的教程是完美的。我不得不修改JythonFactory.java代碼位:

String objectDef = "=" + javaClassName + "(your_constructor_params here)"; 
try { 
     Class JavaInterface = Class.forName(interfaceName); 

     System.out.println("JavaInterface=" + JavaInterface); 

     javaInt = 
      interpreter.get("instance name of a jython class from jython main function").__tojava__(JavaInterface); 
    } catch (ClassNotFoundException ex) { 
     ex.printStackTrace(); // Add logging here 
    } 
5

jythonc也已經不存在了,它已被關閉分叉到名爲​​Clamp另一個項目,但隨着中說...

...你可以預編譯 您的Python腳本使用到.class文件 :

的Jython [Jython的家] /Lib/compileall.py [其中您保持 Python代碼目錄]

來源 - Jython Newsletter, March 2009

當我餵它一個文件夾與Python 2.7代碼(知道它在Jython中2.5會失敗),它沒有輸出.class文件,即使它不功能。試試用你的Jython腳本。如果它有效,請告訴我們,因爲我很快就會到達你的位置。

一旦你到達那裏,將命令行語句轉換爲PyDev中可以根據需要調用的外部工具並不困難。