将Jython嵌入到您的Java代码库中
生活随笔
收集整理的這篇文章主要介紹了
将Jython嵌入到您的Java代码库中
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Jython是一個使用相當可靠的語法的快速Java腳本的好工具。 實際上,當使用jmx為您的Java應用程序實現一些維護或監視腳本時,它的運行效果非常好。
如果您與其他具有python背景的團隊合作,則將python集成到您的java應用程序是絕對有意義的。
首先,讓我們使用獨立版本導入jython interpeter。
group 'com.gkatzioura' version '1.0-SNAPSHOT'apply plugin: 'java'sourceCompatibility = 1.5repositories {mavenCentral() }dependencies {testCompile group: 'junit', name: 'junit', version: '4.11'compile group: 'org.python', name: 'jython-standalone', version: '2.7.0' }因此,最簡單的方法就是在我們的類路徑中執行python文件。 該文件將是hello_world.py
print "Hello World"然后將文件作為輸入流傳遞給干預者
package com.gkatzioura;import org.python.core.PyClass; import org.python.core.PyInteger; import org.python.core.PyObject; import org.python.core.PyObjectDerived; import org.python.util.PythonInterpreter;import java.io.InputStream;/*** Created by gkatzioura on 19/10/2016.*/ public class JythonCaller {private PythonInterpreter pythonInterpreter;public JythonCaller() {pythonInterpreter = new PythonInterpreter();}public void invokeScript(InputStream inputStream) {pythonInterpreter.execfile(inputStream);}}@Testpublic void testInvokeScript() {InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("hello_world.py");jythonCaller.invokeScript(inputStream);}下一步是創建一個python類文件和另一個將導入該類文件并實例化一個類的python文件。
該類文件將是divider.py。
class Divider:def divide(self,numerator,denominator):return numerator/denominator;導入Divider類的文件將是classcaller.py
from divider import Dividerdivider = Divider()print divider.divide(10,5);所以讓我們測試一下
@Testpublic void testInvokeClassCaller() {InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("classcaller.py");jythonCaller.invokeScript(inputStream);}從這個例子中我們可以理解的是,解釋器成功地從類路徑中導入了文件。
使用解釋器運行文件是可以的,但是我們需要充分利用python中實現的類和函數。
因此,下一步是創建一個python類,并使用java使用其功能。
您可以在github上找到源代碼。
翻譯自: https://www.javacodegeeks.com/2016/10/embed-jython-java-codebase.html
總結
以上是生活随笔為你收集整理的将Jython嵌入到您的Java代码库中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酷我音乐歌曲导出到电脑(酷我音乐歌曲导出
- 下一篇: 电脑无限内存有问题(电脑是无限内存吗)