Python可以调用Java Framework吗?
我想知道Python项目是否可以调用Java Framework,我在GitHub中找到了一个Java Framework,我是否可以在我的Python项目中使用它?
答案 0 :(得分:1)
通常Python和Java都有自己的解释器/ VM,无法共享。可以使用Jython但有一些限制(fe.python版本和支持/与其他python包的兼容性)。
解释器和JVM不匹配:Java有严格的输入,python没有。 Java编译并运行,python是一个解释器,可以在运行时更改代码(如果需要)。这些都是额外的挑战,因为将所有人放在同一个环境中是非常复杂的。
有可能像客户端/服务器架构,但可行性取决于框架的级别。
大多数情况下,低级框架已经过优化,可直接在您的应用程序流程中运行。任何松耦合都会引入性能,安全性和兼容性问题。只要想想反射将如何工作或多重继承。
如果它是一个高级框架(能够独立运行),使用某种客户端/服务器更可行。但是你仍然需要为它开发很多东西。
行业标准只是用您想要的语言实现您的愿望框架,然后您还可以获得您平台的所有好处。
答案 1 :(得分:1)
Jython是一种从python调用Java的方法 - 实际上,你在 Java JVM中运行Python 。这使您可以访问几乎任何在JVM上运行的Java,但是存在许多限制。
因为Jython在JVM中运行python,所以几乎可以访问任何Java库。但是,您可以使用的Python非常受限制:您只能使用Python 2.7,并且只能导入纯Python库(使用C编译的Python库不能在Jython上运行)。
有关使用Jython的项目示例:{Javascript}上运行Processing.py以访问Processing Java API及其Java库生态系统。
请注意,Jython 2和its docs已经过时了,developers are uncertain if / when Jython 3 will be released。
py4j是一种不同的方法 - 它是“Python和Java之间的桥梁”,并允许本机python代码访问在单独的JVM中运行的单独Java。但请注意,python和Java代码必须并行运行并通过网关接口进行通信。这是单独运行的进程之间的通信 - 您不是从Python或Python内部启动JVM。
例如:在JVM端将myObject传递给新的GatewayServer(myObject);在Python端创建一个JavaGateway()Python对象,并使用它与Java myObject进行通信。