一、安装
首先需要安装jython-installer-2.7.1的jar包工具。下载地址:https://www.jython.org/
二、注意需要默认安装
三、使用cmd进入jython环境
3.1、配置环境变量
3.2、注册环境点击运行jython_regrtest.bat
3.3、最后后使用命令进行转换,但是只有jython-installer-2.2.0
版本才能使用命令进行转换,由于jython-installer-2.7.0
的版本升级,现在直接类型配置文件或者写在run()或者main(
)方法中才能运行。
引入pom.xml
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.0</version>
</dependency>
java代码
package com.citydo.checkandbigdataquery.jpython;
import org.python.core.Py;
import org.python.core.PySystemState;
import org.python.util.PythonInterpreter;
public class HelloPython {
public static void main(String[] args) {
test1();
//test2();
//test3();
}
/**
* 运行python文件
*/
public static void test1() {
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("D:/jython2.7.1/test.py");
}
/**
* 运行python 代码
*/
public static void test2(){
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("print('hello')");
}
/**
* 手动添加第三方库路径
* 把第三方库文件夹放到执行的.py脚本同级目录
*/
public static void test3(){
PySystemState sys = Py.getSystemState();
System.out.println(sys.path.toString());
sys.path.add("F:\\Python27\\Lib\\site-packages\\jieba");
}
}
package com.citydo.checkandbigdataquery.jpython;
import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
public class Fibo {
public static void main(String[] args) {
PythonInterpreter interpreter = new PythonInterpreter();
interpreter = new PythonInterpreter();
interpreter.execfile("./pythonSrc/fibo.py");
PyFunction function = (PyFunction)interpreter.get("fib",PyFunction.class);
PyObject o = function.__call__(new PyInteger(8));
System.out.println(o.toString());
}
}
package com.citydo.checkandbigdataquery.jpython;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Cmd {
public static void main(String[] args) throws IOException, InterruptedException {
String[] arguments = new String[] { "python", "D:\\jython2.7.1\\time.py", "huzhiwei", "25" };
try {
Process process = Runtime.getRuntime().exec(arguments);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
int re = process.waitFor();
System.out.println(re);
} catch (Exception e) {
e.printStackTrace();
}
}
}
py代码
#coding:utf-8
def countNum(param):
reslut = ""
if(param[1]+param[2]) == 0:
reslut ="除数不能为0"
else:
res = param[0]/(param[1]+param[2])
reslut ="this count: "+str(res)
print(reslut)
if __name__=="__main__":
countNum([10,2,3])
#!/usr/bin/python
#coding=utf-8
#定义一个方法
def my_test(name, age):
print("name: "+str(name))
print(age) #str()防解码出错
return "success"
#主程序
#sys.argv[1]获取cmd输入的参数
my_test(sys.argv[1], sys.argv[2])