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

举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本。假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用java调用控制台进程,即 Runtime.getRuntime().exec(),来运行这个python脚本。在windows下运行这个程序,假如是参考了一些百度来的被转载了无数遍的文章,很有可能运行结果是根本没有执行这个脚本。经过测试,在java中执行如下代码可以成功运行test.py文件:

Process proc = Runtime.getRuntime().exec("cmd /c python "+filepath+"test.py");    //filepath是test.py的地址。可以取相对地址,以项目所在地址为根目录

proc.waitFor();

在使用 cmd /c 时不会弹出python输出窗口,可以使用 cmd /k start 前缀以弹出一个新的控制台窗口并显示python输出

cmd /c dir 是执行完dir命令后关闭命令窗口。

cmd /k dir 是执行完dir命令后不关闭命令窗口。

cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。

cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。

python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中

# coding:utf-8 import urllib2 from bs4 import BeautifulSoup import json import sys reload(sys) sys.s ...

如何在Java中调用Python代码

有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

在Java中调用Python

写在前面 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单.恰好我在项目中就遇到了这个问题 ...

在Java中调用Python代码

极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...

C++中调用Python脚本

C++中调用Python脚本的意义就不讲了,至少你可以把它当成文本形式的动态链接库, 需要的时候还可以改一改,只要不改变接口, C++的程序一旦编译好了,再改就没那么方便了 先看Python的代码 代 ...

C++中调用Python脚本(转载)

转载▼ 标签: 杂谈 C++中调用Python脚本的意义就不讲了,至少你可以把它当成文本形式的动态链接库,需要的时候还可以改一改,只要不改变接口, C++的程序一旦编译好了,再改就没那么方便了先看Py ...

Runtime.getRuntime().exec()实现Java调用python程序

使用Runtime.getRuntime().exec()来实现Java调用python,调用代码如下所示: import java.io.BufferedReader; import java.io ...

在java中调用python方法

1.http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录 示例: 1.摘自:http://blog.csdn.n ...

java中调用js脚本

JDK1.6加入了对Script(JSR223)的支持.这是一个脚本框架,提供了让脚本语言来访问Java内部的方法.你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本.这个脚本API允许你为脚 ...

随机推荐

css动画与js动画的区别

CSS动画 优点: (1)浏览器可以对动画进行优化.   1. 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout ...

wifi详解(一)

1        WLAN技术 WLAN是英文WirelessLAN的缩写,就是无线局域网的意思.无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活.建网迅速.个人化等特点.将 ...

用python演示一个简单的AST(抽象语法树)

如果对'a + 3 * b'进行解释,当中a=2,b=5 代码非常easy,就不再进行具体的解释了. Num = lambda env, n: n Var = lambda env, x: env[x ...

GitHub 小试

GitHub是什么? 它是用来进行版本控制的,就是用来保存项目的地方. 但是项目要是运行,还是需要你本地的环境,它只不过是用来保存代码罢了. GitHub如何操作? 可以通过客户端进行代码提交,更新. ...

MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk

MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk 经ltib编译器生成rootfs.ext2.gz.uboot它可以直接uboot采用.假设我们编写了相应的外部文件把Ramdisk往里 ...

【转】Redis学习笔记(四)如何用Redis实现分布式锁(1)—— 单机版

原文地址:http://bridgeforyou.cn/2018/09/01/Redis-Dsitributed-Lock-1/ 为什么要使用分布式锁 这个问题,可以分为两个问题来回答: 为什么要使用 ...

剑指offer7~10题

斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 思路:此题用递归会超内存,故直接循环. 代码: class Solution { pub ...

PCM简介

1. 差分脉冲编码调制 如果两个相邻抽样值之间的相关性很大,那么它们的差值就较小,这样,仅对差值量化可以使用较少的比特数,此即差分PCM,或DPCM. 为了理论方便,我们将采样和量化分开,并用不带上三 ...

通过OTA的方式在局域网分发iOS应用

公司的一个项目有Android和iOS的app,Android的下载和安装都很方便,不过iOS有些麻烦,因为项目本身有些限制,主要有以下一些障碍:1.iOS的版本不是通过Appstore分发.2.出于 ...

【慕课网实战】Spark Streaming实时流处理项目实战笔记四之铭文升级版

铭文一级: 需求二:Agent选型:exec source + memory channel + logger sink# Name the components on this agenta1.so ...

要在Java调用Python代码,可以使用Jython库。Jython是一个用于在Java虚拟机上运行Python代码的库。它允许您在Java导入和调用Python模块。 下面是一个使用Jython库在Java调用Python代码的例子: 1. 首先,您需要将Jython库添加到Java项目。您可以从Jython官方网站(https://www.jython.org/download)下载Jython安装包并解压缩它。 2. 然后,您需要在Java代码导入Jython库: ```java import org.python.core.PyObject; import org.python.util.PythonInterpreter; ``` 3. 接下来,您可以使用以下代码在Java调用Python代码: ```java // 创建Python解释器 PythonInterpreter interpreter = new PythonInterpreter(); // 执行Python代码 interpreter.exec("print('Hello, World!')"); // 调用Python函数 PyObject someFunction = interpreter.get("some_function"); PyObject result = someFunction.__call__(); // 将Python对象转换为Java对象 String strResult = (String) result.__tojava__(String.class); ``` 4. 如果您想在Java使用Runtime.getRuntime()来运行Python代码,可以使用以下代码: ```java // 创建Runtime对象 Runtime rt = Runtime.getRuntime(); // 创建Process对象来运行Python脚本 Process pr = rt.exec("python script.py"); // 获取脚本输出 BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line = null; while ((line = input.readLine()) != null) { System.out.println(line); } ``` 在此示例,您需要将“script.py”替换为您要运行的Python脚本的名称或路径。请注意,如果Python脚本需要输入,您还需要使用Process对象的输出流将输入发送到脚本。 希望这可以帮助您在Java调用Python代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值