先说下上面问题的原因,上面问题是因为python中用到了第三方的类库,你的电脑上没有那个类库,所以程序没有运行,在控制台也就看不到输出。只要导入那个类库就好。。。

python 导入类库,可以单独下载那个类库安装,也可以直接下载 Anaconda (这里面包含了python numpy pandas)不过比较大。

不过我,不是用的上面的两种方式,我是在pycharm 中打开的python程序,pycharm提示要不要自动下载类库(类似于ideal 中写java 代码的自动导包),我选择导入。(简单粗暴)

pycharm 的安装:https://blog.csdn.net/asd343442/article/details/84103444

最近公司要用到java调用python。

 通过百度了解到java 调用python有 Runtime() 和Jython 两种方法。 runtime对于简单的程序可以直接使用,也不用导包什么的。

Jython是python在java语言平台的实现。我们平时使用的python其实是Cython 是python 在C语言的实现。 python只是语言规范,执行需要C JAVA 等语言去执行。

Jython的使用,需要安装Jython的环境和导入Jython导包。

参考文章 :https://www.cnblogs.com/nuccch/p/8435693.html

  https://blog.csdn.net/it_xiao_bai/article/details/79074988

runtime java调用python参考代码:

public class CallPy {
public static void main(String[] args) throws IOException, InterruptedException {
// TODO Auto-generated method stub
int month = 5;
Process proc;
String lastLine = null;
try {
String[] strings = {"python", "E:\\devTool\\Pyproject\\demo\\second.py"};
String[] strings2 = {"E:\\devTool\\python\\python.exe", "D:\\add.py"};
// 执行py文件\\
proc = Runtime.getRuntime().exec(strings);
//用输入输出流来截取结果
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String content = null;while (true){
lastLine = content;
if ((content = in.readLine()) == null){
System.out.println(lastLine);
break;
}
}
in.close();
proc.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
String substring = lastLine.substring(1, lastLine.length() - 1);
String[] split = substring.split(" ");
    

第一个坑: 上面这段代码,黄色部分是取出python输出的最后一行的内容。

上面靛蓝色的部分,上面部分是写的2个python运行文件的地址,下面的是指的是对输出的字符串,切割空格得到数组。因为我的电脑上有多个python运行环境(自己安装了一个python,安装了jython),如果不指定python.exe的绝对路径,在下面字符串按照空格切割解得到的数组,中间会夹杂着 空字符串,解决办法是,把 split(“  ”)引号中输入2个空格。

第二个坑: 电脑上如果没有python的环境,会报无法加载python文件的错误。。

java 通过runtime 调用python 不显示python运行内容的bug的更多相关文章

  1. [DEBUG] java中用Runtime调用python 简单程序输出null

    今天需要在java中调用python脚本,首先考虑的是java自带的Runtime 在ubuntu和win10下分别测试,发现win10报错 java源代码 @Test public void tes ...

  2. java使用RunTime调用windows命令行

    当Java需要调用windows系统进行交互时,可以使用Runtime进行操作. 例子: 1.调用window中获取关于java相关的进行信息 Runtime rt = Runtime.getRunt ...

  3. Java借助Runtime调用外部程序阻塞的代码

    有时候在java代码中会调用一些外部程序,比如SwfTools来转换swf.ffmpeg来转换视频等.如果你的代码这样写:Runtime.getRuntime().exec(command),会发现程 ...

  4. java中怎么调用python 脚本

    调用方法: import java.io.BufferedReader; import java.io.InputStreamReader; public class PythonInvoke { p ...

  5. Java程序中调用Python脚本的方法

    在程序开发中,有时候需要Java程序中调用相关Python脚本,以下内容记录了先关步骤和可能出现问题的解决办法. 1.在Eclipse中新建Maven工程: 2.pom.xml文件中添加如下依赖包之后 ...

  6. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决

    问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...

  7. java web应用调用python深度学习训练的模型

    之前参见了中国软件杯大赛,在大赛中用到了深度学习的相关算法,也训练了一些简单的模型.项目线上平台是用java编写的web应用程序,而深度学习使用的是python语言,这就涉及到了在java代码中调用p ...

  8. Atitit. servlet 与 IHttpHandler  ashx  listen 和HttpModule的区别与联系 原理理论 架构设计   实现机制    java php c#.net js javascript  c++ python

    Atitit. servlet 与 IHttpHandler  ashx  listen 和HttpModule的区别与联系 原理理论 架构设计   实现机制    java php c#.net j ...

  9. Atitit  文件上传  架构设计 实现机制 解决方案  实践java php c#.net js javascript  c++ python

    Atitit  文件上传  架构设计 实现机制 解决方案  实践java php c#.net js javascript  c++ python 1. 上传的几点要求2 1.1. 本地预览2 1.2 ...

随机推荐

  1. django.http.response中HttpResponse 子类

    HttpResponse的子类 Django包含许多处理不同类型的HTTP请求的 HttpResponse 子类.像 HttpResponse 一样,这些类在 django.http 中. HttpR ...

  2. Extjs 兼容IE8常见问题及解决方法

    1. 在IE8中整个页面都打不开,一般情况是: 页面组件中最后一个属性出现了逗号 没有多余的逗号,就很有可能是组件中没有设置renderTo:Ext.getBody(); 2. 页面按钮颜色失效 自定 ...

  3. vue导出Excel文件

    1.需要安装file-saver和script-loader.xlsx npm install file-saver / yarn add file-saver npm install script- ...

  4. 原生js实现ajax封装

    一.什么是ajax? 定义:Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并 ...

  5. Python:GeoJson格式的多边形裁剪Tiff影像并计算栅格数值

    JSON是通过键值对表示数据对象的一种格式,其全称为JavaScript Object Notation,它采用完全独立于编程语言的文本格式来存储和表示数据,轻量级.简洁清晰的层次结构.容易解析等特点 ...

  6. JetBrains 系列开发工具 汉化(中文化)教程

    项目地址:(* ̄3 ̄)╭ 操作流程: 拷贝内容 将下载的包改名为resources_cn.jar,拷贝到 $IDEA_HOME$/lib/ 目录下 重启IDEA 打开或者重新启动IDEA

  7. [Python]pip install offline 如何离线pip安装包

    痛点:目标机器无法连接公网,但是能使用rz.sz传输文件 思路:在能上网的机器是使用pip下载相关依赖包,然后传输至目标机器,进行安装 0. Install pip: http://pip-cn.re ...

  8. 记一次oracle 11g数据导入

    1.ORACLE数据库数据导入到测试库环境 172.15.1.51 root  kic@test 172.15.1.52 root 一般先将数据导入52的环境(配置比较低),再将数据导入51的环境(本 ...

  9. Sublime Text 解决 Unable to download XXX 问题

    Sublime Text 安装插件报错: Package Control Unable to download XXX. Please view the console for more detail ...

  10. linux网络编程之socket编程(九)

    转眼又快到十一月份了,北京已经是完全进入冬天的节奏,外面冷风嗖嗖的,不过在夜深人静之时,学习永远成了我最快乐的时光,只有此时会觉得自己是如此踏实,虽说白天工作也是编一天程,但是此时的编程,是一种业余爱 ...