zoukankan      html  css  js  c++  java
  • java调用含第三方库的py文件

    这是一个心酸的历程。

    py文件如下:

    这里调用出现的问题主要是第三方包的问题,因为你的py文件里可能含有很多三方库文件,jython的jar包里可能不含有这个,所以这时需要你找到你已有三方库文件的exe,怎么找呢,去你的pycharm里找,不然java会调用计算机默认的python去做,而你可能只是把三方库文件下载到了某一个程序里,如果我这么说你不懂那就去pycharm里找:

    java源码:

    import org.python.core.Py;
    import org.python.core.PySystemState;
    import org.python.util.PythonInterpreter;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class py {
        public static void main(String[] args) throws IOException {
            try{  
                System.out.println("start");  
                Process pr = Runtime.getRuntime().exec("C:\Users\神奇的刘dd\PycharmProjects\untitled\venv\Scripts\python.exe C:\Users\神奇的刘dd\PycharmProjects\untitled\毕设\TestMysql.py");              
                System.out.println("123"); 
                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();  
                }  
            
        }
    }

    插入数据库也可以。亲测成功!

     接受的python程序的返回值是乱码怎么办?

    import org.python.core.Py;
    import org.python.core.PySystemState;
    import org.python.util.PythonInterpreter;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class py {
        public static void main(String[] args) throws IOException {
            try{  
                System.out.println("start");  
                Process pr = Runtime.getRuntime().exec("C:\Users\神奇的刘dd\PycharmProjects\untitled\venv\Scripts\python.exe C:\Users\神奇的刘dd\PycharmProjects\untitled\毕设\QQNews.py");              
                System.out.println("123"); 
               BufferedReader in = new BufferedReader(new  
                        InputStreamReader(pr.getInputStream(),"GBK"));  
                String line;  
                while ((line = in.readLine()) != null) {  
                    //String res=new String(line.getBytes("iso8859-1"), "utf-8");
                    System.out.println(line);  
                }           
                in.close();  
                pr.waitFor();    
                System.out.println("end"); 
        } catch (Exception e){  
                    e.printStackTrace();  
                }  
            
        }
    }

    这样设置字符集为GBK即可。

  • 相关阅读:
    python有哪些好的学习资料或者博客?
    运维角度浅谈MySQL数据库优化
    MySQL高可用性之Keepalived+Mysql(双主热备)
    Python 开发者节省时间的 10 个小技巧
    PHP 加密的几种方式
    17种常用的jQuery全屏焦点图代码
    13种酷炫的html5 3D图片切换代码
    14款微信小游戏源码下载
    Ext js框架模拟Windows桌面菜单管理模板
    10款 非常酷炫的网站首页焦点图 兼容ie浏览器
  • 原文地址:https://www.cnblogs.com/mm20/p/11594724.html
Copyright © 2011-2022 走看看