zoukankan      html  css  js  c++  java
  • java调用python代码

    python代码:

    java代码:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    import org.python.core.Py;
    import org.python.core.PySystemState;
    import org.python.util.PythonInterpreter; 
    
    
    public class JavaPythonUtils {
        public static void main(String[] args) throws IOException, 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(new InputStreamReader(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可能并不包含你所调用的第三方库文件。

     正确输出如图:

  • 相关阅读:
    Android网络编程要学的东西与Http协议学习
    数据存储与访问之——初见SQLite数据库
    ViewPager基础入门
    调用android方法,出现版本太低解决方法
    Android Studio 代码自动提示无效
    策略模式
    C#通过SendARP()获取WinCE设备的Mac网卡物理地址
    简单理解和使用 C# 委托与事件
    Oracle SQL developer客户端 如何连接已经安装完毕的Oracle服务器端
    源码分析之Map(二)HashCode详解
  • 原文地址:https://www.cnblogs.com/wang-jx/p/12167379.html
Copyright © 2011-2022 走看看