一、安装
首先需要安装jython-installer-2.7.1的jar包工具。

二、注意需要默认安装

三、使用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.xxxx.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.xxxx.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.xxxx.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])
四、解决问题

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论