当前位置: 首页 > news >正文

Java项目调用Python脚本(基于idea)

前期准备

1.首先需要在本地环境中安装配置python环境

Python(含PyCharm及配置)下载安装以及简单使用(Idea)

博主本次使用python版本为py3.7.3

2.idea安装python插件

位置:File->Settings->Plugins->python->安装后重启即可
在这里插入图片描述

3.引入jython依赖

<!--python-->
<dependency><groupId>org.python</groupId><artifactId>jython-standalone</artifactId><version>2.7.0</version>
</dependency>

编写Java代码

1.方式1:

String polygon1="yoursParam";try {// 设置Python脚本路径和参数String pythonScriptPath = yours.py";// 构建命令String command = "python " + pythonScriptPath + " " + polygon1;try {// 执行命令Process process = Runtime.getRuntime().exec(command);// 读取脚本输出BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}// 等待脚本执行完毕process.waitFor();reader.close();} catch (IOException | InterruptedException e) {e.printStackTrace();}

2.方式2:

try {// 创建命令列表List<String> command = new ArrayList<>();command.add("python");command.add(yoursUrl);command.add(yoursParam);// 创建进程生成器并执行命令ProcessBuilder pb = new ProcessBuilder(command);Process process = pb.start();// 读取脚本输出BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String output;while ((output = reader.readLine()) != null) {System.out.println(output );}// 等待脚本执行完毕process.waitFor();} catch (IOException | InterruptedException e) {e.printStackTrace();}

两种方式区别

参数的形式:
1.Runtime.getRuntime().exec(command) 接受一个字符串形式的命令,例如 “python your_script.py”.
2.ProcessBuilder 接受一个命令的字符串列表,例如 {“python”, “your_script.py”}. 使用列表形式可以更灵活地传递参数和配置。

管理进程的能力:
1.Runtime.getRuntime().exec(command) 返回一个 Process 对象,但对于该进程的控制和管理能力有限。
2.ProcessBuilder 返回一个 ProcessBuilder 对象,该对象可以进行更高级的进程控制,例如重定向输入输出流、设置环境变量、设置工作目录等。

子进程输出的处理:
1.Runtime.getRuntime().exec(command) 需要手动处理子进程的输入流和输出流,否则可能会导致进程阻塞或数据丢失。
2.ProcessBuilder 在调用 start() 方法后,可以通过 Process 对象的 getInputStream()、getOutputStream() 和 getErrorStream() 方法来获取子进程的标准输入、输出和错误输出流。

python脚本此处不再展示 可根据自己情况传值调用即可 可通过文件方式传值 py处用pandas库中方法读取xlsx或者txt等都可自行选择 如若直接传值可用Processbuilder 命令行获取参数即可 py对应方法为sys.argv 基于sys库

相关文章:

Java项目调用Python脚本(基于idea)

前期准备 1.首先需要在本地环境中安装配置python环境 Python(含PyCharm及配置)下载安装以及简单使用(Idea) 博主本次使用python版本为py3.7.3 2.idea安装python插件 位置&#xff1a;File->Settings->Plugins->python->安装后重启即可 3.引入jython依赖 &l…...

前端 JS 经典:i,i++,++i区别

1. 概念 用于对变量进行自增操作。它们的区别在于返回值不同。 i 表示先使用 i 的值&#xff0c;再将 i 加 1&#xff0c;返回的是 i 自增前的值。 i 表示先将 i 加 1&#xff0c;再使用 i 的值&#xff0c;返回的是 i 自增后的值。 i 表示直接使用 i 的值&#xff0c;不进…...

EF Core 7.0 新特性之批量修改

概要 EF Core 7.0 提供了一个可以将LINQ查询和批量修改相结合的方法ExecuteUpdate。由于数据修改是以批量更新的方式完成&#xff0c;所以可以减少数据库的往返次数。 本文将主要介绍ExecuteUpdate的使用方法。 代码和实现 基本案例 本文我们使用银行分行&#xff0c;ATM机…...

Vue_Bug error0308010Cdigital envelope routinesunsupported

Bug描述&#xff1a; error0308010Cdigital envelope routinesunsupported 解决方法&#xff1a; Just add this to the top of vue.config.js : const crypto require(crypto);/*** md4 algorithm is not available anymore in NodeJS 17 (because of lib SSL 3).* In that…...

中科院提出“思维传播”,极大增强ChatGPT等模型复杂推理能力

中国科学院自动化研究所与耶鲁大学计算机系研究人员联合发布了&#xff0c;一份名为《思维传播:用大型语言模型进行基于类比的复杂推理》的论文。 ChatGPT等大型语言模型展示出了超强的创造能力&#xff0c;只需简单的文本提示就能生成小说、营销创意、简历等各种文本内容。但…...

ubuntu20.04安装opencv 3.2.0 报错

安装记录 Error 1: cmake时报错 CMake Error at cmake/OpenCVCompilerOptions.cmake:21 (else): A duplicate ELSE command was found inside an IF block. Fix: 修改opencv-3.2.0/cmake/OpenCVCompilerOptions.cmake文件 注释掉21和22行 else()message(STATUS "Unabl…...

KubeVela交付

有什么用我也不想说了&#xff0c;这个是k8s CI/CD,进阶玩家玩的了&#xff0c;比你们喜欢Arg CD更科学&#xff0c;更现代 在 Kubernetes 中安装 KubeVela helm repo add kubevela https://charts.kubevela.net/core helm repo update helm install --create-namespace -n v…...

【SpringCloud-10】SCA-nacos

前言&#xff1a; 前面介绍的springcloud&#xff0c;可以看做第一代&#xff0c;称为&#xff1a;SCN&#xff08;spring cloud Netflix&#xff09;; 接下来介绍的是第二代&#xff1a;SCA&#xff08;spring cloud alibaba&#xff09;&#xff1b; SCA主要有以下组件&#…...

卡顿分析与布局优化

卡顿分析与布局优化 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。Android系统每隔大概16.6ms发出VSYNC信 号&#xff0c;触发对UI进行渲染&#xff0c;如果每次渲染都成功&#xff0c;这样就能够达到流畅的画面所需要的60fps&#xff0c;为了能够实现60fp…...

【Vivado HLS Bug】Ubuntu环境下Vivado HLS导出IP报错:HLS ERROR: [IMPL 213-28]

Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22) (xilinx.com)一.问题描述&#xff1a; 在Ubuntu20.04环境中使用Vivado HLS导出IP时报错&#xff1a;HLS ERROR: [IMPL 213-28] 二.解决方法&#xff1a; 1.从如下链接中下载官方补丁Export IP Invalid…...

2022最新版-李宏毅机器学习深度学习课程-P14 批次(batch)与动量(momentum)

一、batch 回顾epoch、shuffle batch size大还是小&#xff1f;都有好处 大batchsize的好处 由于GPU有并行计算的能力&#xff0c;左边并不一定用时更长 反而是&#xff0c;batch size小的时候&#xff0c;要跑完一个epoch所用的update时间更长&#xff0c;所以时间方面的比较…...

谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)rust解法

有一个5*5的网格&#xff0c;其中恰好有一个格子是空的&#xff0c;其他格子各有一个字母。一共有4种指令&#xff1a;A, B, L, R&#xff0c;分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列&#xff08;以数字0结束&#xff09;&#xff0c;输出指…...

acwing算法基础之数据结构--双链表

目录 1 知识点2 模板 1 知识点 一般的结构体写法为&#xff0c; struct BiListNode {int val;BiListNode *left;BiListNode *right; };但我们不用这个&#xff0c;而用数组模拟双链表&#xff0c;此时&#xff0c;用编号为0的结点表示头结点&#xff0c;用编号为1的结点表示尾…...

将中文名格式化输出为英文名

要求&#xff1a; 编写Java程序&#xff0c;输入样式为&#xff1a;Zhong wen ming的人名&#xff0c;以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母&#xff1b;例如输入”Willian Jefferson Clinton“,输出形式为&#xff1a;Clinton,Willian.J public static …...

设计模式_迭代器模式

迭代器模式 介绍 设计模式定义案例迭代器模式行为型&#xff1a;关注对象与行为的分离 提供了一种统一的方式来访问多个不同的集合两个集合&#xff1a;使用了不同的数据存储方式 学生 和 警察 查询显示出集合的内容 &#xff0c;使用相同的代码 问题堆积在哪里解决办法不同…...

【数据结构】:栈的实现

1 栈 1.1栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则 压栈…...

微前端一:技术选型

微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。 微前端架构具备以下几个核心价值&#xff1a; 1、技术栈无关 主框架不限制接入应用的技术栈&#xff0c;微应用具备完全自主权 2、独立开发、独立部署 微应用仓库独立&#xff0…...

FPGA project : flash_continue_write

本实验学习了通过spi通信协议&#xff0c;驱动flash&#xff1b;完成连续写操作。 连续写&#xff1a; 本质上还是页编程指令&#xff0c;两种连续写的方式&#xff1a; 1&#xff0c;每次只写1byte的数据。 2&#xff0c;每次写满1页数据&#xff0c;计算剩余数据够不够写…...

论文阅读:Rethinking Range View Representation for LiDAR Segmentation

来源ICCV2023 0、摘要 LiDAR分割对于自动驾驶感知至关重要。最近的趋势有利于基于点或体素的方法&#xff0c;因为它们通常产生比传统的距离视图表示更好的性能。在这项工作中&#xff0c;我们揭示了建立强大的距离视图模型的几个关键因素。我们观察到&#xff0c;“多对一”…...

本地配置免费的https咋做?

大家好这里是tony4geek。 今天和公司的小伙伴对接项目&#xff0c;因为涉及到https的权限调用。所以在服务器本地localhost 要配置https用来测试 。现在把过程中遇到的问题记录下来。 • 因为是测试用所以生成https的证书用免费的就可以了。 openssl req -x509 -nodes -days …...

C++的std--ranges中的检测引用悬垂

C的std::ranges中的检测引用悬垂&#xff1a;安全迭代的守护者 在现代C编程中&#xff0c;std::ranges库为序列操作提供了更简洁、更安全的抽象。迭代器与范围的使用常伴随一个隐蔽风险&#xff1a;引用悬垂&#xff08;Dangling References&#xff09;。当迭代器指向的底层数…...

TrafficMonitor插件系统:5个技巧打造你的个性化Windows监控中心

TrafficMonitor插件系统&#xff1a;5个技巧打造你的个性化Windows监控中心 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 想要让Windows任务栏上的TrafficMonitor变得更加强大…...

三步解决TranslucentTB开机启动故障:从现象到原理的深度解析

三步解决TranslucentTB开机启动故障&#xff1a;从现象到原理的深度解析 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB TranslucentTB作…...

Qwen2.5-7B-Instruct入门指南:7B模型对输入token长度的鲁棒性压力测试

Qwen2.5-7B-Instruct入门指南&#xff1a;7B模型对输入token长度的鲁棒性压力测试 1. 项目概述 Qwen2.5-7B-Instruct是阿里通义千问系列的旗舰级大模型&#xff0c;相比1.5B和3B轻量版本&#xff0c;7B参数规模带来了质的飞跃。这个模型在逻辑推理、长文本创作、复杂代码编写…...

Python入门实战:调用MogFace-large完成你的第一个人脸检测程序

Python入门实战&#xff1a;调用MogFace-large完成你的第一个人脸检测程序 你是不是对AI人脸检测感到好奇&#xff0c;但又觉得它离自己很远&#xff0c;需要高深的数学和复杂的代码&#xff1f;今天&#xff0c;我们就来打破这个迷思。我将带你用Python&#xff0c;从一个纯新…...

MediaPipe实战:5分钟搞定人体姿态检测与3D坐标实时输出(附完整代码)

MediaPipe实战&#xff1a;5分钟搭建高精度人体姿态检测系统 当你第一次看到电影里的动作捕捉技术时&#xff0c;是否好奇过那些流畅的虚拟角色动画是如何实现的&#xff1f;如今&#xff0c;借助MediaPipe这个强大的开源框架&#xff0c;普通开发者也能在个人电脑上构建专业级…...

Qwen3-0.6B-FP8实操手册:多轮对话记忆机制与上下文控制技巧

Qwen3-0.6B-FP8实操手册&#xff1a;多轮对话记忆机制与上下文控制技巧 1. 引言&#xff1a;为什么你需要关注对话记忆&#xff1f; 想象一下&#xff0c;你跟一个朋友聊天&#xff0c;聊了十分钟后&#xff0c;你问他&#xff1a;“我们刚才说到哪了&#xff1f;”他一脸茫然…...

AI原生应用开发:边缘设备上的实时目标检测实现

AI原生应用开发&#xff1a;边缘设备上的实时目标检测实现关键词&#xff1a;AI原生应用开发、边缘设备、实时目标检测、计算机视觉、深度学习摘要&#xff1a;本文聚焦于AI原生应用开发中在边缘设备上实现实时目标检测这一重要课题。详细介绍了边缘设备实时目标检测的核心概念…...

Vue.js前端项目集成AI:SmallThinker-3B-Preview实现智能表单与对话

Vue.js前端项目集成AI&#xff1a;SmallThinker-3B-Preview实现智能表单与对话 1. 引言&#xff1a;当Vue.js遇见AI 你有没有遇到过这样的场景&#xff1f;用户填写一个复杂的表单&#xff0c;面对几十个选项不知所措&#xff1b;或者客服系统里&#xff0c;用户问了一个稍微…...

macOS HTTPS资源嗅探配置指南:res-downloader从入门到精通

macOS HTTPS资源嗅探配置指南&#xff1a;res-downloader从入门到精通 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcode…...