IDEA / JAVA中调用python代码记录

Java Runtime.getRuntime().exec调用python程序问题总结 Java Runtime.getRuntime().exec调用python程序 阅读详情
  • Java 程序中,若想执行一些 Shell 命令或其他外部应用程序,通常都是使用java.lang.Runtime.exec(…)方法来执行的,因此可以通过Runtime.getRuntime().exec 在Java程序中调用python文件
  • 以下代码为笔者运行成功的代码,其中踩坑点如下:
    1. Runtime.getRuntime().exec() 中的参数后一部分为python文件的绝对路径(如笔者的python文件绝对路径为:E:\IdeaProjects\demo\courserecommendation\service\service_recommendation\src\main\needFile\test.py)
    2. Runtime.getRuntime().exec() 中的参数前一部分为python的解释器所在的路径(即使在cmd中可以通过python直接运行python文件,此处也要使用python解释器所在的路径)


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test2 {
    public static void main(String[] args) {
        Process proc;
        try {
            proc = Runtime.getRuntime().exec("D:\\Anaconda3\\python.exe E:\\IdeaProjects\\demo\\courserecommendation\\service\\service_recommendation\\src\\main\\needFile\\test.py");// 执行py文件
            //用输入输出流来截取结果
            BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            proc.waitFor();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
java调Python脚本(五):java通过 Runtime.getRuntime().exec()调Python脚本一直没有返回值,卡住了,数据太大 1、背景: 当我们调用系统外部的某个程序,此时就可以用Runtime.getRuntime().exec()来调用。这次java调Python算法代码时,一直没有返回值,卡住了,而用pycharm跑Python代码是正常的,说明是java这边的问题。去看了后台的java进程一直都在,挂住了,找了好久才想到是阻塞问题, 原来是因为Python文件中返回的数据太大而且很多,况且Python运行中出现... 阅读详情

相关推荐

Mac环境下Java使用Runtime.getRuntime().exec调用python不成功

python执行的时候使用绝对地址执行 String[] cmd = {"python的绝对地址", p,s}; Process proc; try { proc = Runtime.getRuntime().exec(cmd); BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream())); S

qq_40046204的博客 1029

『踩坑记录』Java-Runtime.exec()执行命令报错Cannot run program “xxx“:系统找不到指定的文件

# 问题描述 在Windows调用exec执行`dir`时报错:Exception in thread "main" java.io.IOException: Cannot run program "dir": CreateProcess error=2, 系统找不到指定的文件。 # 解决 **由于Java调用命令是以文件句柄的形式调用,Java并没有获取到shell,因此这里需要从cmd.exe调用dir,修改指令为`cmd /c dir`。同理,Linux下需要执行`/bin/sh -c xxx`**

Ho1aAs‘s Blog 1万+

IDEA搭建Java+Python混合自动化框架:Selenium/TestNG与Pytest/Playwright集成指南

在软件测试与自动化开发领域,集成开发环境(IDE)是提升效率的核心工具。其核心原理在于通过统一的界面管理代码、依赖和构建流程,减少上下文切换。对于需要同时维护Java与Python技术栈的团队而言,这一价值尤为突出,它能有效解决工具链割裂导致的配置繁琐与协作低效问题。常见的应用场景包括Web自动化测试、API测试以及需要混合语言协作的持续集成流水线。本文聚焦于利用IntelliJ IDEA强大的插件生态,将其打造为统一的多语言自动化工作台,详细演示了如何在一个项目中并行管理基于Selenium与TestNG

weixin_33885676的博客 480

JAVA-IDEA报错Error:Cannot run program “C:\Program Files\Java\jdk1.8.0_20\bin\java.exe“

一般发生在更新jdk版本之后,执行java程序报错:Error:Cannot run program "C:\Program Files\Java\jdk1.8.0_20\bin\java.exe" (in directory "C:\Users\xxx\AppData\Local\JetBrains\IntelliJIdea2020.1\compile-server"): CreateProcess error=2, 系统找不到指定的文件。 解决: 第一步,按图索骥啊! 1)查看“C:\Prog

jiefang2的博客 2万+

在C++/Python/Java/ObjectC中使用OpenCV,详细配置踩坑记录!!

前言  作为OpenCV的高频使用者,我在目前主流语言中都使用过OpenCV,并且在Windows/ Linux/ Mac OS上均有过配置经验,为了让自己踩过的坑不至于白踩,现将这些过程和踩过的坑都记录下来,希望能对需要的同学有点帮助。OpenCV的话就不过多介绍了,做图像处理的童鞋应该都比较喜欢用这个库,毕竟更新多,维护多,文档多,且C++写的运行速度快,并且功能丰富,4版本封装了很多深度学习...

zkyzq的博客 1548

ISCC练习题MISC

解题技巧:看最后括号应该是IceCTF,先用了一键解码啥也没有啊,不对不对!好像是字符频率统计,转换网站:http://quipqiup.com/有人给你发了一串信息,你能解开吗?

m0_62737381的博客 1119

java调用python

前言 这一章来学习如何使用 java 调用 python 机器学习模块,毕竟 python 在算法方法好用,但是做 web 项目还是 java 更优,最近有个项目想要集成机器学习算法,这里简单记录一下。 java 调用 python,分三步来学习: 第一步:java 调用 python 语句 第二步:java 调用 python 脚本 第三步:java调用python脚本函数(如何传递参数) 第四步:java调用python机器学习模块并运行 上面三步都需要调用 jython 库,两种加入项目方法:

蓝亚之舟的博客 8472

(C#脚本)Unity中角色移动的几种实现方法,以及心得。(适合新手入门)

PS:首先我们要知道,在C#中Transform组件是可以直接调用的,而其他的(例如:Rigidbody,Animator)都需要通过 GetConpoment<组件的名称>(); 来获取进行实例化。 例子:调用Rigidbody2D private Rigidbody2D rb2D;//声明变量实例化 void Start() { rb2d = GetComponent<Rigidbody2D>();//获取 } 1.对Unity脚本写入有一定的思维了解...

qq_48860282的博客 1万+

记录Idea整合Java和Python代码遇到版本问题的解决过程

​ 三剑客合力搞一个项目,我负责全栈,他们负责算法。新手嘛,第一次合作总是漏洞百出,前期缺少沟通,加之经验的匮乏,隐留下了许多的错误。​ 前段时间,在项目整合的时候,我的电脑跑不起来。因为他们用的是Python而我用的是Java,使用是Java调用Python的代码。跑不起来的原因,大体如下:python版本不匹配我缺少很多Python依赖他们忘记了自己的依赖不知道错误的真正原因我前期依赖于他人解决好在经过今天一天的努力,总算是解决了,记录一下,解决的过程吧!

游坦之的博客 1997

别再为CAD和GIS数据对不上而头疼了!一份完整的ArcGIS for AutoCAD坐标系定义与数据套合指南

本文详细介绍了如何通过ArcGIS for AutoCAD插件解决CAD与GIS数据坐标系不匹配的问题,实现数据的精准套合。文章从坐标系冲突分析、插件核心功能解析到五步标准化工作流,提供了完整的解决方案,帮助工程师和设计师提升跨平台协作效率。

weixin_42531886的博客 216

Matlab使用GitHub的踩坑记录(持续更新)

Matlab使用git的踩坑记录前言Matlab设置Git的官方帮助文档系统配置新建Git两种代码管理方式典型源代码管理SVN分布式源代码管理 Git注意:SVN和Git都可以用GitHub创建新的库 前言 作为Git初学者,对Git的代码版本管理非常非常喜欢,给了我极大的安全感。特别是想到之前的几次Matlab、Latex和python的代码莫名其妙被折腾没了又没法找回的悲剧,决定慢慢的走入gi...

voluntry的博客 7296

python调用java的方法

1、为什么python需要调java的方法? 对于前端的http接口,python测试相对要简单易学,但是有些情况python却无法满足我们的需要。 比如我们有一个主数据依赖上游的http接口下发,但是上游系统突然挂了,这个时候怎么办?难道等上游环境恢复了再继续测试吗。。。 很明显干等不是一个好办法,这个时候我们可以撇开上游系统,直接调用后端的java接口。 2、学python自动化,也要会java,为什么不直接学java自动化测试 入门难易程度不一样,python入门简单上手快,而java难度要

c240378424的博客 4380

S7-PLCSIM Advanced V3.0虚拟PLC组态下载失败?手把手教你解决IP地址冲突问题

本文针对S7-PLCSIM Advanced V3.0组态下载失败问题,深入剖析了IP地址冲突的根本原因。通过对比博途项目PLC、虚拟网卡及本机物理网卡的IP配置,提供了清晰的排查流程与标准化解决方案,帮助用户快速修复网络可达性问题,确保虚拟PLC仿真顺利进行。

weixin_29306261的博客 193

python训练出的模型怎么调用_使用java调用python训练出的pmml模型

记录下自己的过程,以后可以随时用,如果能帮到大家就更好了。从安装软件说起,嫌麻烦的就别看了。一、下载工具(俗话说得好,预先善其事必先利其器!哈哈)我刚开始安装的是eclipse,但有诸多麻烦不能解决,就用了IDEA,和Pycharm一个公司发行的。首先进入官网: http://www.jetbrains.com/products.html#lang=java选择IDEA下载:由于社区版的功能太少,...

weixin_39989384的博客 1189

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 376

RK3566基于Buildroot定制QT开发环境的完整指南

本文详细介绍了如何在RK3566开发板上使用Buildroot定制QT开发环境的完整流程。从基础环境搭建、Buildroot初始配置到QT模块选择与编译验证,提供了实战经验和常见问题解决方案,帮助开发者高效完成嵌入式Linux下的QT开发环境部署。

weixin_26804345的博客 358

java 调用python脚本的方法

java调用python脚本文件

身体,灵魂,技术。总要有一个在前进 9199

Claude Code 100个真实案例 - 用AI做数据可视化大屏(ECharts+实时数据)

数据报表看着枯燥?领导汇报缺少视觉冲击力?是时候做一个酷炫的数据可视化大屏了!本案例将用 Claude Code 从零搭建一个实时数据可视化大屏,使用 ECharts 实现折线图、柱状图、饼图、地图、仪表盘等多种图表,配合 WebSocket 实现秒级数据刷新,深色主题科技感拉满!

yueyeguzhuo的专栏 196

随手记录第六话 -- 在Mac上搭建整个开发环境记录(Java、Python、Vue、Docker、idea)

最近公司新买了一批Mac,冲着Mac的性能我也来体验了一波。结果可想而知,各种问题都随之而来,有时也搞得措手不及,在这里记录一下。

生生不息,则源源不断 1156

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java/Compose Desktop项目中进行python调用

开发compose desktop项目爬网站时遇到验证码处理不方便需要借助python庞大的处理能力,这时需要再项目中调用python去执行获取结果,这里记录一下使用过程。本次开发记录基于:python 3.9,compose 1.3 java17工具:Pycharm IntelliJ IDEA适用场景:java项目使用python,不想再单独安装python环境,直接集成进java项目。

我的博客 912

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python调用java方法_Python调用java方法

[本文出自天外归云的博客园]需求最近在后台项目代码中一段自定义的AES加解密的程序在平时的测试工作中应用频繁。因为写脚本经常会需要使用,而经过各种尝试,比如jpype等,都不尽如人意。最后转换思路找到了一种好方法:1. 将java项目打成jar包;2. 设定jar包的Main-class属性;3. 在python中通过subprocess执行jar包。修改main函数打jar包在intellij中...

weixin_39576336的博客 277

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python java thrift_IntelliJ IDEA下Java、Python实现Thrift调用

终于跑通了!!!安装了三次Ubuntu系统,期间都想放弃尝试了,最终还是咬牙坚持了一下下,为自己点小赞。脑海中出现一打赞美诗句:功夫不负有心人;不经历风雨,怎样见彩虹;失败是成功之母;坚持就是胜利;莫倒在黎明前。好了,停止浮夸,开始正题。还是自己对Linux不熟悉,所以才遇到各种各样的问题,我只阐述下可以调通的流程。ubuntu-18.04.2-desktop-amd64.iso手动下载、安装后:...

weixin_29585753的博客 171

Java调用python脚本

问题出现了,解决方案还会远吗?不会的

wyb_340的博客 734

Java 调用 Python 没反应

之前参照转载的这篇文章: https://blog.csdn.net/Dongguabai/article/details/96497955 调用的时候一直没有反应,而且 process.waitFor(); 的结果为 1,Java 代码为: public class Tests { public static void main(String[] args) { ...

【欢迎关注公众号:冬瓜白】 1607

IDEA 插件 Trae AI 全攻略

TraeAI是一款专为Java开发者打造的IDEA插件,通过AI技术显著提升开发效率。文章全面介绍了TraeAI的核心功能和使用方法,包括代码生成、解释、优化、测试生成等基础功能,以及10个典型开发场景的实战应用。TraeAI深度集成IDE,支持本地模型部署,能理解项目上下文,帮助开发者快速搭建项目骨架、重构旧代码、调试异常等。

果酱 の 博客 2万+

IDEA提交代码后回滚并删除记录

内容不能为空

wuxun1997的专栏 664
上一篇: some code record
下一篇: tensorflow 查看模型中的参数列表及对应的值
懿朔
博客等级 码龄7年 17粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值