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

Java:Java程序通过执行系统命令调用Python脚本

本文实现功能:Java程序调用Python脚本

Python脚本

import sysdef add(x, y):return x + yif __name__ == "__main__":print(add(int(sys.argv[1]), int(sys.argv[2])))

直接执行

$ python math.py 1 2
3

Java程序调用Python脚本

package io.github.mouday.utils;import java.io.*;/*** 执行系统命令*/
public final class ShellUtil {private ShellUtil() {}/*** 操作系统名称** @return Mac OS X*/public static String getOsName() {return System.getProperty("os.name");}/*** 判断是否为windows操作系统** @return*/public static Boolean isWindows() {return ShellUtil.getOsName().toLowerCase().contains("win");}/*** 根据系统返回对应平台执行命令* @param command* @return*/public static ProcessBuilder getProcessBuilder(String command) {if (ShellUtil.isWindows()) {return new ProcessBuilder("cmd", "/c", command);} else {return new ProcessBuilder("bash", "-c", command);}}/*** 执行系统命令* @param command* @return*/public static String executeCommand(String command) {try {ProcessBuilder pb = ShellUtil.getProcessBuilder(command);pb.redirectErrorStream(true);Process process = pb.start();process.waitFor();InputStream inputStream = process.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));String line;StringBuilder result = new StringBuilder();while ((line = reader.readLine()) != null) {result.append(line);// 换行符result.append(System.lineSeparator());}process.waitFor();inputStream.close();reader.close();process.destroy();return result.toString();} catch (InterruptedException | IOException e) {throw new RuntimeException(e);}}public static void main(String[] args) {// System.out.println(ShellUtil.executeCommand("echo 'hello'"));// helloSystem.out.println(ShellUtil.executeCommand("python math.py 1 2"));// 3}
}

参考视频

  1. JAVA开发必会小技巧8——用代码调用系统指令

相关文章:

Java:Java程序通过执行系统命令调用Python脚本

本文实现功能:Java程序调用Python脚本 Python脚本 import sysdef add(x, y):return x yif __name__ "__main__":print(add(int(sys.argv[1]), int(sys.argv[2])))直接执行 $ python math.py 1 2 3Java程序调用Python脚本 package io.github.mouday.…...

this is incompatible with sql_mode=only_full_group_by

查看配置 select global.sql_mode 在sql命令行中输入select sql_mode 能够看到sql_mode配置,如果有ONLY_FULL_GROUP_BY,则需要修改 在mysql5.7.5后,ONLY_FULL_GROUP_BY是默认选项,所以就会导致group by的问题 set sql_mode‘复制去掉ONLY_F…...

GCC编译选项

当使用GCC编译器时,可以根据不同的需求选择适当的编译选项来控制编译过程和生成的代码的行为。以下是一些常见的GCC编译选项的归纳: 优化选项: -O0: 不进行优化,保留原始的C代码结构。-O1: 启用基本优化级别,进行简单…...

信息安全战线左移!智能网联汽车安全亟需“治未病”

当汽车由典型的工业机械产品逐步发展成为全新的智能移动终端,汽车的安全边界发生了根本性改变,信息安全风险和挑战不断增加。 面对复杂的异构网络、异构系统及车规级特异性要求,智能智能网联汽车信息安全到底要如何防护,已经成为…...

服务器介绍

本文章转载与b战up主谈三国圈,仅用于学习讨论,如有侵权,请联系博主 机架型服务器 堆出同时服务百万人次机组 刀型服务器 服务器炸了 比如用户访问量暴增 超过机组的峰值处理能力,进而导致卡顿或炸服, 适合企业的塔式…...

Java_25_方法引用

方法引用 方法引用: 方法引用是为了进一步简化Lambda表达式的写法。 方法引用的格式:类型或者对象::引用的方法。 关键语法是:“::” 小结:方法引用可以进一步简化Lambda表达式的写法。关键语法是:“::”范例代码&…...

QT基于TCP协议实现数据传输以及波形绘制——安卓APP及Windows程序双版本

文章代码有非常非常之详细的解析!!!诸位可放心食用 这个玩意我做了两个,一个是安卓app,一个是Windows程序。代码并非全部都是由我从无到有实现,只是实现了我想要的功能。多亏了巨人的肩膀,开源…...

mac 中 brctl 怎么用

mac 中 brctl 怎么用 mac 中 brctl 怎么用1.使用 Homebrew 安装 bridge2.安装完成后,你可以使用 bridge 命令来管理网络桥接。 mac 中 brctl 怎么用 在 macOS 中,没有官方提供的 brctl 命令行工具。但是,你可以使用一个名为 bridge 的开源工…...

20.2 HTML 常用标签

1. head头部标签 <head>标签用于定义网页的头部, 其中的内容是给浏览器读取和解析的, 并不在网页中直接显示给用户. <head>标签通常包含以下一些常见的子标签: - <title>: 定义网页的标题, 在浏览器的标题栏或标签页上显示. - <meta>: 用于设置网页的…...

mysql_2.5——【约束】详解

1、查看约束 SHOW CREATE TABLE table_name 2、主键约束(PRIMARY KEY) 主键约束最显著的特征是主键列中的值是不允许重复(唯一)的&#xff0c;通过主键约束可强制表 的实体完整性。当创建或更改表时可通过定义 primary key 约束来创建主键。一个表只 能有一个primary key约束…...

回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLA…...

opencv顺时针,逆时针旋转视频并保存视频

原视频 代码 import cv2# 打开视频文件 video cv2.VideoCapture(inference/video/lianzhang.mp4)# 获取原视频的宽度和高度 width int(video.get(cv2.CAP_PROP_FRAME_WIDTH)) height int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))# 创建视频编写器并设置输出视频参数 fourcc …...

【LeetCode】最小路径和

最小路径和 题目描述算法流程编程代码 链接: 最小路径和 题目描述 算法流程 编程代码 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();vector<vector<int>> dp(m1,vector<in…...

zygote forkSystemServer及systemServer启动

###zygote forkSystemServer方法 通过上一篇文章我们了解到zygote 在ZygoteInit.java类的main方法中调用forkSystemServer方法 UnsupportedAppUsagepublic static void main(String[] argv) {ZygoteServer zygoteServer null;....省略部分代码//根据环境变量(LocalServerSocke…...

享元模式-提供统一实现对象的复用

下围棋时&#xff0c;分为黑白棋子。棋子都一样&#xff0c;这是出现的位置不同而已。如果将每个棋子都作为一个独立的对象存储在内存中&#xff0c;将导致内存空间消耗较大。我们可以将其中不变的部分抽取出来&#xff0c;只存储它的位置信息来实现节约内存。 图 围棋 1 享元模…...

Jenkins工具系列 —— 在Ubuntu 18.04上安装各种版本OpenJDK

文章目录 安装java方式一、使用apt-get工具安装方式二、手动安装java 卸载java各种版本OpenJDK安装包下载 安装java 方式一、使用apt-get工具安装 1、安装各种JAVA版本 若要安装新版本的java11&#xff0c;安装命令&#xff1a; sudo apt install default-jre若选择安装jav…...

vue基础-虚拟dom

vue基础-虚拟dom 1、真实dom目标2、虚拟dom目标 1、真实dom目标 在真实的document对象上&#xff0c;渲染到浏览器上显示的标签。 2、虚拟dom目标 本质是保存节点信息、属性和内容的一个JS对象 更新会监听变化的部分 给真实的DOM打补丁...

C#时间轴曲线图形编辑器开发2-核心功能实现

目录 三、关键帧编辑 1、新建Winform工程 &#xff08;1&#xff09;界面布局 &#xff08;2&#xff09;全局变量 2、关键帧添加和删除 &#xff08;1&#xff09;鼠标在曲线上识别 &#xff08;2&#xff09;键盘按键按下捕捉 &#xff08;3&#xff09;关键帧添加、删…...

【Git】初始化仓库配置与本地仓库提交流程

目录 一、仓库配置邮箱与用户名 二、本地仓库提交流程 一、仓库配置邮箱与用户名 【Git】Linux服务器Centos环境下安装Git与创建本地仓库_centos git仓库搭建_1373i的博客-CSDN博客https://blog.csdn.net/qq_61903414/article/details/131260033?spm1001.2014.3001.5501 在…...

学习day53

今天主要是做一个案例 TodoList 组件化编码流程&#xff1a; 1. 拆分静态组件&#xff1a;组件要按照功能点拆分&#xff0c;命名不要与html元素冲突 2.实现动态组件&#xff1a;考虑好数据的存放位置&#xff0c;数据是一个组件在用&#xff0c;还是一些组件在用&#xff1a…...

涡轮发动机建模这事听起来玄乎,实际拆开了看也就是搭积木。咱今天用Simulink搞个能喘气的发动机模型,重点在让这铁疙瘩遇到负载突变时还能稳住转速不抖腿

【空气涡轮发动机Matlab/simulink动态仿真模型】 1、部件级模型;进气道&#xff0c;涡轮&#xff0c;气室&#xff0c;压气机&#xff0c;尾喷管&#xff0c;转子动力学模块&#xff0c;容积模块 2、PID控制器: 输出扭矩阶跃扰动下&#xff0c;维持转速恒定先给各个部件开户口簿…...

如何零门槛构建企业级智能Agent?AI应用开发全攻略

如何零门槛构建企业级智能Agent&#xff1f;AI应用开发全攻略 【免费下载链接】fast-agent Code, Build and Evaluate agents - excellent Model and Skills/MCP/ACP Support 项目地址: https://gitcode.com/gh_mirrors/fa/fast-agent 在AI技术迅猛发展的今天&#xff0…...

ERNIE-4.5-0.3B-PT创意写作实战:用AI帮你生成有画面感的场景描述

ERNIE-4.5-0.3B-PT创意写作实战&#xff1a;用AI帮你生成有画面感的场景描述 1. 为什么需要AI辅助创意写作 在内容创作领域&#xff0c;最令人头疼的莫过于如何让文字"活起来"。传统写作往往面临三大痛点&#xff1a; 画面感不足&#xff1a;描述停留在表面&#…...

千问3.5-2B保姆级教程:从模型原理到业务集成的全栈技术路径

千问3.5-2B保姆级教程&#xff1a;从模型原理到业务集成的全栈技术路径 1. 认识千问3.5-2B视觉语言模型 千问3.5-2B是Qwen系列中的小型视觉语言模型&#xff0c;它能够同时理解图片内容和处理自然语言。简单来说&#xff0c;这个模型就像是一个能"看懂"图片并回答问…...

如何用ContextMenuManager彻底掌控Windows右键菜单?4阶段优化法让操作效率提升300%

如何用ContextMenuManager彻底掌控Windows右键菜单&#xff1f;4阶段优化法让操作效率提升300% 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager Windows右键菜单是…...

2026长沙GEO优化公司权威实测:基于稳定性与转化效率的TOP5服务商深度推荐

2026长沙GEO优化公司权威实测&#xff1a;基于稳定性与转化效率的TOP5服务商深度推荐2026年&#xff0c;生成式AI搜索已深度重塑商业决策与品牌获客的路径。在全国GEO&#xff08;生成式引擎优化&#xff09;的版图中&#xff0c;长沙凭借活跃的数字经济生态与扎实的产业基础&a…...

基于潜在扩散模型的高分辨率图像合成-CVPR2022

期刊&#xff1a;Conference on Computer Vision and Pattern Recognition (CVPR) 论文链接&#xff1a;[2112.10752] High-Resolution Image Synthesis with Latent Diffusion Models 年份&#xff1a;2022 关键词&#xff1a;扩散模型&#xff0c;图像生成 从像素空间走向…...

终极Koikatu HF Patch配置指南:游戏体验全面升级方案

终极Koikatu HF Patch配置指南&#xff1a;游戏体验全面升级方案 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch Koikatu HF Patch作为非官方增强…...

借助快马平台优化蓝桥杯python解题代码,提升算法执行效率

最近在准备蓝桥杯Python组的比赛&#xff0c;发现很多题目对算法效率要求很高。就拿经典的"最大子序列和"问题来说&#xff0c;不同的解法效率差异巨大。今天分享一下我是如何借助InsCode(快马)平台来快速验证不同解法的效率的。 问题理解 最大子序列和问题要求在一个…...

Marked.js 终极指南:为什么这是现代 Web 开发中最快的 Markdown 解析器?

Marked.js 终极指南&#xff1a;为什么这是现代 Web 开发中最快的 Markdown 解析器&#xff1f; 【免费下载链接】marked A markdown parser and compiler. Built for speed. 项目地址: https://gitcode.com/gh_mirrors/ma/marked 在当今内容驱动的 Web 开发世界中&…...