[英]How do I share common Python/Jython code between a Python and Java project with Pydev/Eclipse?
我正在使用嵌入在Java项目中的Jython脚本,该Java项目是在Eclipse中开发的,安装了Pydev。 现在,我想在另一个纯Python项目中重用此脚本。 有没有一种方法可以干净地做到这一点而无需复制脚本?
当前,我有一个Java项目,其中包含目录src/
(包含Java源代码)和src-py/
(包含Jython源代码),并添加了Pydev'facet'。 Java代码使用以下代码调用Jython代码:
// evaluate the Jython class
PythonInterpreter interpreter = new PythonInterpreter();
InputStream resourceAsStream = MyEclipsePlugin.getResource("/src-py/MyJythonCode.py");
interpreter.execfile(resourceAsStream);
// create an instance of the Jython class and retrieve a Java interface reference to it
interpreter.exec("x = MyJythonClass()"); // MyJythonClass implements MyJavaInterface
Object x = interpreter.get("x").__tojava__(MyJavaInterface.class);
return (MyJavaInterface) x;
这有效,但是显然很丑陋。 从我阅读的内容来看,曾经有一个“ jythonc”(可能更接近于我所需要的),但是它似乎已被弃用,并且不鼓励您使用它。 否则,我需要在运行时使用实际的Jython源代码将其编译为JVM类。 因此,不幸的是,上述模式似乎不支持加载模块,因此我目前正在单个.py文件中处理所有内容。 我想我最终可能会多次执行interpreter.execfile()
,但是当模块之间存在相互依赖关系时,我还没有真正弄清楚该怎么做。
接下来,我尝试创建一个新的Jython项目以将MyJythonCode.py
移入其中。 不幸的是,我无法将Pydev / Jython项目添加为对Java项目的项目引用,因此我不确定如何将其集成到Java项目中。
我目前看到的选项,我都不喜欢:
有人有更好的主意吗?
我认为应该为这两个都依赖的内容创建一个单独的项目...
即:
将项目创建为Java项目,然后向其添加pydev属性(即:右键单击项目> pydev>设置为pydev项目)。
然后,在该项目中,您可以创建java-wrapper类,还可以配置pydev的源路径(并将该项目添加为其他项目的引用:右键单击其他项目>属性>项目引用)。
这样一来,对于Java / Python来说一切都应该正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.