3种方式:

1、利用flask或者django的web向外提供接口调用(可参考django和flask的程序)

2、利用PyInstaller把python生成一个exe的可执行文件调用

3、比较麻烦,安装python,直接调用.py文件

第一种不介绍了,直接参考我的博客,flask和django框架搭建。

第二种方式:

1、可以直接命令安装:pip install pyinstaller

也可以使用pychar安装pyinstaller插件。

2、生成可执行文件:

pyinstaller -F -w hello.py

hello.py是我的项目启动文件名称,生成的可执行文件放在同目录dist下

-F(注意大写)是所有库文件打包成一个可执行文件,windows下是exe,Linux下是对应的可执行文件;

-w是禁止弹出黑色控制台窗口。

项目调用了图片等本地资源,请将可执行文件放在对应目录才能运行。

生成了可执行文件hello.exe

3、Java调用hello.exe文件(使用ProcessBuilder(参考我的博客))

程序演示:

package com.test.demo.gua;import java.io.BufferedReader;
import java.io.InputStreamReader;/*** cmd /c dir 是执行完dir命令后关闭命令窗口。cmd /k dir 是执行完dir命令后不关闭命令窗口。cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。*/
public class TestPython {public static void main(String[] args) {//.exe程序所在的完整路径String arguments = "H:\\WorkPlace\\JavaPlace\\demo\\demo\\file\\hello.exe";ProcessBuilder processBuilder = new ProcessBuilder(arguments);StringBuilder stringBuilder = new StringBuilder();processBuilder.redirectErrorStream(true);Process process =null;try {// 获取程序执行后返回的结果//执行这个.exe程序process = processBuilder.start();
//            process = Runtime.getRuntime().exec("cmd /c start " + arguments);BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));String line = null;while ((line = in.readLine()) != null) {
//                System.out.println(line);stringBuilder.append(line + System.lineSeparator());}in.close();//java代码中的process.waitFor()返回值为0表示我们执行.exe文件成功,//返回值为1表示执行.exe文件失败,这和我们通常意义上见到的0与1定义正好相反int re = process.waitFor();System.out.println(re);System.out.println(stringBuilder.toString().trim()+"-------------");} catch (Exception e) {e.printStackTrace();}finally{if (process != null) {process.destroy();}}}}

成功输出:欢迎大家光临!!!

第三种就是安装python3,具体安装过程不展示

直接上代码:

// 依次为:python.exe的安装路径,hello.py脚本的存储路径
String[] arguments = new String[] {"D:\\Python\\python.exe", "H:\\WorkPlace\\JavaPlace\\demo\\demo\\file\\hello.py"};try {// 运行hello.pyProcess process = Runtime.getRuntime().exec(arguments);BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));String line = null;while ((line = in.readLine()) != null) {System.out.println(line);}in.close();//java代码中的process.waitFor()返回值为0表示我们调用python脚本成功,//返回值为1表示调用python脚本失败,这和我们通常意义上见到的0与1定义正好相反int re = process.waitFor();System.out.println(re);} catch (Exception e) {e.printStackTrace();}

这是用runtime的exec();也可以使用ProcessBuilder。

Java调用python的程序相关推荐

  1. Java调用python脚本

    Java调用python脚本 最近也是刚开始学python,所以这里写了一个简单的小方法用Java来调用python脚本.后期再进行更新. 1.Java启动程序的方法 在Java中提供了两种方法来启动 ...

  2. 【Java】使用Java调用Python的四种方法

    写在前面 为啥一个好好的岗位是Java开发工程师要去做写python呢?因为产品经理安排的(突然多少有点明白为啥程序员和产品经理会一直开撕).由于在选择企业的时候没看清企业性质,看了要求以为就是互联网 ...

  3. java 调用python脚本过程_通过Java调用Python脚本

    在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...

  4. .net core 引用jar_Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...

  5. Java 调用 Python 方法学习笔记

    文章转载自: 作者:IT_xiao_bai                         来源:CSDN                         原文:https://blog.csdn.n ...

  6. windows文本转语音 通过java 调用python 生成exe可执行文件一条龙

    我已记不清 我失败过多少次 ,找过多少资料 ,但是功夫不负有心人 ,还是成功了. 所有资料和需要的语音模块的资料以放置在文章末尾, 有些是引用别人的博客的部分内容, 原文是在有道云笔记,所以没有图 . ...

  7. python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...

  8. Java调用Python语言及第三方Python库

    #pic_center =400x 系列文章: 文章目录 1.导入依赖 <!--Python&Java--><dependency><groupId>org ...

  9. java调用python 踩的坑

    因为工作需要 现在要用java去调用python程序的方法 java 调用python的方法有很多 这里主要讲一下最常用的一种,Runtime.getRuntime().exec ("pyt ...

最新文章

  1. SAP中供应商确认功能的应用分析
  2. 【资料下载区】【iCore、 iCore2相关资料】更新日期2017/1/11
  3. linux C如何获取服务器节点上所有网口的ip地址
  4. linux du -sh 脚本,Linux之shell脚本(2)
  5. 类HTML语法显示格式化文本
  6. Ajax开发框架(下)[整理]
  7. 交互设计中的“所见即所得”原则
  8. springcloud之eureka集群搭建
  9. 工作流:如何将Word尾注转换为普通文本格式
  10. 睿智的目标检测27——Pytorch搭建Faster R-CNN目标检测平台
  11. 开关配置springboot定时任务
  12. 计算机外存断电会丢失吗,外储存器断电后信息会丢失吗
  13. 金融科技数据中台基于 DolphinScheduler 的应用改造
  14. queryWrapper详解
  15. 地理信息系统-坐标系统
  16. GSM Arena 魅族mx四核评测-个人翻译
  17. go Jenkins流水线极速打包镜像上传
  18. Java项目:SSH小区/公司/物业停车场管理系统
  19. python传参是什么意思_Python传参传什么?
  20. c读取ini配置文件_细数Java项目中用过的配置文件(ini 篇)

热门文章

  1. 模拟赛 10-14考试再次翻车记
  2. jmap查看内存使用情况与生成heapdump
  3. UWP ListView 绑定 单击 选中项 颜色
  4. 可输入可选择的input
  5. calling c++ from golang with swig--windows dll(一)
  6. Android开发问题集锦-Button初始为disable状态时自定义的selector不生效问题
  7. 【二分】【中等难度】noip模拟赛 聪哥的工资
  8. boot sprint 项目结构_完美起航-【知识】SpringBoot项目结构目录
  9. html显示当前时间_HTML基础教程:超链接的使用
  10. for循环递减_C++ 循环:方阵队列,内外层叠