文章目录

  • 1、新建一个Maven工程,导入如下依赖
  • 2、在java中直接执行python代码片段
  • 3、通过PythonInterpreter类中的execfile()方法来执行一个python脚本文件。
  • 3、通过Runtime.getRuntime().exec()方法来执行python脚本

1、新建一个Maven工程,导入如下依赖

<dependency><groupId>org.python</groupId><artifactId>jython-standalone</artifactId><version>2.7.0</version>
</dependency>

2、在java中直接执行python代码片段

import org.python.util.PythonInterpreter;public class InvokePython {public static void main(String[] args) {PythonInterpreter pythonInterpreter = new PythonInterpreter();pythonInterpreter.exec("a='aaa'");pythonInterpreter.exec("print(a)");
//        pythonInterpreter.exec("import pandas as pd");}
}

通过上面这种方式执行python代码片段,实际上是通过Jpython来实现的,这种方式能执行的python代码片段比较有限,都是一些最原始的python命令,很多包不能用,例如执行pythonInterpreter.exec("import pandas as pd"); 都会报错。所以这种方式一般不推荐

3、通过PythonInterpreter类中的execfile()方法来执行一个python脚本文件。

import org.python.util.PythonInterpreter;public class InvokePython {public static void main(String[] args) {PythonInterpreter pythonInterpreter = new PythonInterpreter();pythonInterpreter.execfile("F:\\大学\\大三\\大三下\\工程创新和企业开发\\大作业\\图灵API.py");}
}

这种方式和上面的那种方式的本质是一样的,能执行的命令也是很原始的,一般不推荐。

3、通过Runtime.getRuntime().exec()方法来执行python脚本

原python脚本

import requests
import json
import sysdef chat_by_Turing(question):url = "http://www.tuling123.com/openapi/api?key=49de46c409c047d19b2ed2285e8775a6&info="response = requests.get(url+question)result = json.loads(response.text)answer = result['text']print("小安:",answer)question = sys.argv[1] ##这个是用来接收外部传进来的参数
chat_by_Turing(question)

Runtime.getRuntime().exec()调用

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;public class RuntimeFunction {public static void main(String[] args) {Process proc;String compiler = "E:\\Anaconda\\Anaconda_install\\python.exe";
//        String program = "F:\\大学\\大三\\大三下\\工程创新和企业开发\\大作业\\图灵API.py";String rootPath = "F:\\大学\\大三\\大三下\\机器学习\\课设\\Python\\src\\main\\resources\\";String program = "图灵API.py";try {Scanner in = new Scanner(System.in);System.out.print("我:");String question = in.nextLine();String commond = compiler+" "+rootPath+program+" "+question;proc = Runtime.getRuntime().exec(commond);BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream(),"GBK"));String line = null;while ((line = reader.readLine()) != null) {System.out.println(line);}in.close();proc.waitFor();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}
}

Runtime.getRuntime().exec()需要传入一个字符串类型的参数command ,完整语句Runtime.getRuntime().exec(command)。这条语句是通过自己电脑上的cmd来执行的python程序文件的,因此command的构成如下:
python解释器+" “+python程序文件的绝对路径+” "+需要给python程序文件传入的参数
注意command中的空格比不可少,python脚本里面需要通过sys.argv来接收参数的

通过这种方式来执行python程序,完全取决于你前面使用的python编译器,编译器环境里面有的,就一定能够通过这种方式调用。这种方式比较强大,推荐使用这种方式来执行python程序。

参考链接

在java中调用python程序相关推荐

  1. java能调用python吗_如何使用运行时在Java中调用python程序 - java

    我想用来自Java的参数调用python程序.但是我的输出是空白.代码在这里. Python代码在这里: import sys print(sys.argv[1]) Java代码在这里: public ...

  2. java中调用python

    在Java中调用Python </h1><div class="clear"></div><div class="postBod ...

  3. 在Java中调用Python

    写在前面 参考:https://www.cnblogs.com/nuccch/p/8435693.html 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然 ...

  4. 在Java中调用Python,java面试题,java初级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 写在 ...

  5. java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本

    举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...

  6. java怎么调用python_如何在Java中调用Python代码

    Jython(原JPython),是一个用2113Java语言写的Python解释5261器.在没有第三方模块的情况下4102,通常选择利用Jython来调用1653Python代码,它是一个开源的J ...

  7. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  8. php调用python绘图程序_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  9. 如何在HTML文档中调用Python程序?

    如何在HTML文档中调用Python程序? 简介: ​ 前几天突然遇到这样的一个需求,在html页面中调用python程序对图像进行处理,之后将处理后的图像重新显示在页面中.刚开始还不知道html页面 ...

  10. java中调用matlab程序及相关问题

    **在java中调用matlab程序,首先要将matlab程序打包成jar文件,才可以被java程序所调用. 打包时本人所用的各种工具: 1:myeclipse-bule 2:java-1.7 3:m ...

最新文章

  1. 为什么找不到Flash Builder 4.6 for Eclipse插件
  2. Spring Boot学习总结(3)——SpringBoot魅力所在
  3. office插件开发_Office神插件,打开新世界的大门
  4. seo查询系统php源码,2020版SEO计费系统的源码
  5. matlab赌徒破产模型转移矩阵,基于matlab的土地利用转移矩阵及土地利用转移空间分布...
  6. 3Q大战多年后,互联网圈再没有仗义执言的优秀屌丝了
  7. 【漏洞】——心脏滴血(CVE-2014-0160)
  8. Python批量检测域名是否被注册
  9. spark 集群处理后转单机pyspark 或 pands 数据处理 的方法
  10. 阿里云服务器代充-做业务搭建网站用物理机还是云服务器?
  11. 第1章 走进Java
  12. 玩转NVIDIA Jetson AGX Xavier--- 中文用户手册
  13. 什么是JMS(Java Message Service消息服务)
  14. 韩信点兵C语言实现的几种方法
  15. 利用留数定理计算实积分进阶例子
  16. MacBook Air M1硬盘写入量查询
  17. 长期稳定短视频去水印微信小程序源码
  18. pytorch vgg 网络
  19. 创业第27天,开始规划把SEO功能加进竞价助手
  20. python ubuntu centos_ubuntu与centos系统对比

热门文章

  1. 办公软件自学教程有哪些
  2. 怎样下载Dev-C++
  3. python之输出语句
  4. MFC学习笔记(一)MFC基本知识介绍、建立MFC应用程序
  5. Java基础知识之笔记总结分享(超详细)入门必备
  6. 功能强大的云打印组件-接口文档
  7. Hadoop开发环境搭建之Eclipse配置
  8. C++编程 Unicode转换成中文
  9. python与c语言数据交互,python与c语言交互---学习012
  10. C语言库函数——string.h