簡體   English   中英

使用Jython From Eclipse插件

[英]Using Jython From Eclipse Plugin

從Eclipse插件運行時,我很難讓jython正常工作。 我有一個簡單的對象工廠,它加載符合Java接口的python模塊。 所有這些在獨立模式下都能正常工作。 但是,當我將其打包為eclipse插件時,我會根據一些變量得到不同的錯誤:

鑒於我的java包是com.foo。

1)如果我在沒有修改任何路徑的情況下運行,我得到:“沒有名為foo的模塊”

2)如果我然后使用以下命令將我的java jar添加到sys.path:

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

我明白了:

a)我的python模塊的構造函數被調用(在constr中打印出來)
b)我從調用tojava返回一個PySingleton 名稱字段為“錯誤”。

3)此時,我嘗試使Eclipse中的類路徑與Standalone完全相同,因此我在運行時在調用python解釋器之前將我的jar添加到類路徑中。

我得到了我最喜歡的錯誤消息:SystemError:自動代理初始化應該只發生在代理類上

這個讓我發瘋。 我對獨立模式的速度有多快感到印象深刻。 在Eclipse下運行應該有那么大的不同嗎? 我認為它應該只是類路徑的問題,但到目前為止,似乎並不是這樣。

最后想出這一個。 這是我必須做的:

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插件沒有打包成jar(在3.5集Eclipse-BundleShape:dir中)
3)將jython.jar和您想要定位模塊的任何路徑添加到Manifest中的Runtime Classpath。

希望這有助於某人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM