在java中调用python程序
文章目录
- 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程序相关推荐
- java能调用python吗_如何使用运行时在Java中调用python程序 - java
我想用来自Java的参数调用python程序.但是我的输出是空白.代码在这里. Python代码在这里: import sys print(sys.argv[1]) Java代码在这里: public ...
- java中调用python
在Java中调用Python </h1><div class="clear"></div><div class="postBod ...
- 在Java中调用Python
写在前面 参考:https://www.cnblogs.com/nuccch/p/8435693.html 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然 ...
- 在Java中调用Python,java面试题,java初级笔试题
写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 写在 ...
- java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本
举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...
- java怎么调用python_如何在Java中调用Python代码
Jython(原JPython),是一个用2113Java语言写的Python解释5261器.在没有第三方模块的情况下4102,通常选择利用Jython来调用1653Python代码,它是一个开源的J ...
- m 文件 dll matlab 中调用_如何在matlab中调用python程序
现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...
- php调用python绘图程序_如何在matlab中调用python程序
现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...
- 如何在HTML文档中调用Python程序?
如何在HTML文档中调用Python程序? 简介: 前几天突然遇到这样的一个需求,在html页面中调用python程序对图像进行处理,之后将处理后的图像重新显示在页面中.刚开始还不知道html页面 ...
- java中调用matlab程序及相关问题
**在java中调用matlab程序,首先要将matlab程序打包成jar文件,才可以被java程序所调用. 打包时本人所用的各种工具: 1:myeclipse-bule 2:java-1.7 3:m ...
最新文章
- 为什么找不到Flash Builder 4.6 for Eclipse插件
- Spring Boot学习总结(3)——SpringBoot魅力所在
- office插件开发_Office神插件,打开新世界的大门
- seo查询系统php源码,2020版SEO计费系统的源码
- matlab赌徒破产模型转移矩阵,基于matlab的土地利用转移矩阵及土地利用转移空间分布...
- 3Q大战多年后,互联网圈再没有仗义执言的优秀屌丝了
- 【漏洞】——心脏滴血(CVE-2014-0160)
- Python批量检测域名是否被注册
- spark 集群处理后转单机pyspark 或 pands 数据处理 的方法
- 阿里云服务器代充-做业务搭建网站用物理机还是云服务器?
- 第1章 走进Java
- 玩转NVIDIA Jetson AGX Xavier--- 中文用户手册
- 什么是JMS(Java Message Service消息服务)
- 韩信点兵C语言实现的几种方法
- 利用留数定理计算实积分进阶例子
- MacBook Air M1硬盘写入量查询
- 长期稳定短视频去水印微信小程序源码
- pytorch vgg 网络
- 创业第27天,开始规划把SEO功能加进竞价助手
- python ubuntu centos_ubuntu与centos系统对比