python代码:
java代码:
importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importorg.python.core.Py;importorg.python.core.PySystemState;importorg.python.util.PythonInterpreter;public classJavaPythonUtils {public static void main(String[] args) throwsIOException, InterruptedException {try{
System.out.println("start");
Process pr= Runtime.getRuntime().exec("C:\\Users\\WJX\\AppData\\Local\\Programs\\Python\\Python35\\python.exe E:\\PycharmProjects\\SkinCareRecommendation\\venv\\Include\\diaoyong.py");
BufferedReader in=new BufferedReader(newInputStreamReader(pr.getInputStream()));
String line;while((line = in.readLine()) !=null) {
System.out.println(line);
}
in.close();
pr.waitFor();
System.out.println("end");
}catch(Exception e){
e.printStackTrace();
}
}
}
将jython.jar包build path:
注:
Process pr = Runtime.getRuntime().exec("C:\\Users\\WJX\\AppData\\Local\\Programs\\Python\\Python35\\python.exe E:\\PycharmProjects\\SkinCareRecommendation\\venv\\Include\\diaoyong.py");
此句中的参数第一个地址为你要调用python文件所使用的python.exe,如果使用的是pycharm建的python项目,则可从setting里面找到使用的python.exe路径:
若路径不一致,则可能导致想调用的python中本来应输出的信息无法输出。
原因:这里调用出现的问题主要是第三方包的问题,因为你的py文件里可能含有很多三方库文件,jython的jar包里可能不含有这个,所以这时需要你找到你已有三方库文件的exe,
怎么找呢,去你的pycharm里找,不然java会调用计算机默认的python去做,而你可能只是把三方库文件下载到了某一个程序里,计算机默认的python可能并不包含你所调用的第三方库文件。
正确输出如图: