一、安裝
首先需要安裝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])