Java实现的执行python脚本工具类示例【使用jython.jar】

这篇文章主要介绍了Java实现的执行python脚本工具类,结合实例形式分析了java使用jython.jar执行Python脚本的具体操作技巧,需要的朋友可以参考下

本文实例讲述了Java实现的执行python脚本工具类。分享给大家供大家参考,具体如下:

这里java中执行python脚本工具类,需要使用jython.jar

java中执行python脚本工具类,学习的时候写着玩:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
public final class JythonUtil {
  private JythonUtil(){}
  /**
   * 执行某个.py文件
   * @param filePath
   * @throws IOException
   */
  public static void pythonExecute(String filePath) throws IOException{
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    pin.execfile(is);
    is.close();
  }
  /**
   * 获取python程序的变量值
   * @param filePath
   * @param ponames
   * @return
   * @throws IOException
   */
  public static List transP2JData(String filePath, String...ponames) throws IOException{
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    pin.execfile(is);
    is.close();
    List pos = new ArrayList();
    for (String poname : ponames) {
      PyObject po = pin.get(poname);
      pos.add(po);
    }
    return pos;
  }
  /**
   * 将参数赋给python程序执行
   * @param filePath
   * @param pomaps
   * @throws IOException
   */
  public static void transJ2PData(String filePath, Map pomaps) throws IOException {
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    for (String pomapkey : pomaps.keySet()) {
      pin.set(pomapkey, pomaps.get(pomapkey));
    }
    pin.execfile(is);
    is.close();
  }
  /**
   * 将参数赋给python程序执行,并获取python中的变量值
   * @param filePath
   * @param pomaps
   * @param ponames
   * @return
   * @throws IOException
   */
  public static List transJ2PData(String filePath, Map pomaps, String...ponames) throws IOException {
    PythonInterpreter pin = new PythonInterpreter();
    InputStream is = new FileInputStream(filePath);
    for (String pomapkey : pomaps.keySet()) {
      pin.set(pomapkey, pomaps.get(pomapkey));
    }
    pin.execfile(is);
    is.close();
    List pos = new ArrayList();
    for (String poname : ponames) {
      PyObject po = pin.get(poname);
      pos.add(po);
    }
    return pos;
  }
}

附:jython.jar点击此处本站下载

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

相关推荐:

天工AI写个人简介提示词怎么加示例,结果更稳定

加示例显著提升天工AI生成个人简介质量——它能对齐语言节奏、信息密度和人设颗粒度;不加则套用空洞模板。因天工AI无记忆,需用真实自写段落或正反对比样例明确风格坐标,再嵌入角色、背景与硬约束。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 天工AI生成个人简介时加不加示例,输出质量差异非常明显——没示例时它常套用空洞的“本人性格开朗、责任心强...

海螺AI怎么用来写短视频脚本让内容结构更紧凑?

海螺AI短视频脚本优化需锚定算法敏感节点:①结构化分段强制输出;②爆款骨架反向填充;③角色绑定+行为指令嵌套;④分镜表格驱动;⑤多版本对比迭代。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 如果您希望借助海螺AI生成结构紧凑、节奏清晰的短视频脚本,但输出内容常出现段落松散、平台适配弱或信息密度低等问题,则可能是由于提示词未锚定算法敏感节点...

怎样用Kimi编写Python脚本实现钉钉自动打卡_结合Kimi代码生成

钉钉打卡接口可用,但需先抓包获取有效Cookie和员工ID;若启用面部/蓝牙等强校验则脚本失效。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 你需要在每天上班前用Python脚本自动向钉钉提交打卡数据,但不熟悉逆向工程、HTTP协议或模拟登录流程,想借助Kimi的代码生成能力快速产出可运行脚本。 确认钉钉打卡接口是否可用 打开钉钉网页版(...
· AI · 79370

DeepSeek写脚本运行示例提示词怎么写,才能复制就能执行

必须以if name == "__main__":开头并调用main(),显式import所有依赖,输入用sys.argv[1]或input(),输出仅print纯文本,禁用可视化和交互语法,脚本可直接python script.py运行。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 要让DeepSeek生成的Python脚本复制后无需修...

QoderWake年度最佳脚本:盘点2025年最受欢迎的开源自动化库

QoderWake平台适配的四大主流开源自动化库为TaskFlow-X、RepoGuardian、LogPilot-Agent和DiffCraft。TaskFlow-X支持YAML编排任务流并嵌入Quest视窗;RepoGuardian提供Git钩子增强与PR前安全校验;LogPilot-Agent通过日志生成因果图谱辅助根因分析;DiffCraft采用AST比对提升代码差异可读性。 ☞☞☞AI ...
· AI · 173027

QoderWake智能代码纠错:在数字员工生成脚本后的自动化Debug技巧

QoderWake提供五种自动化Debug技巧:一、启用Harness-First架构实时日志注入;二、基于Session账本状态快照回溯比对;三、调用Critic-Refiner机制增量断点重放;四、对接Connector跨工具链断言校验;五、启用权限红线驱动静默修复建议弹窗。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 如果您在Qod...
· AI · 277509

Trae的AI能帮忙做接口的并发压力测试脚本编写吗?

可采用四种方法生成压力测试脚本:一、Python+Locust编写可调试脚本;二、JMeter+CSV生成jmx参数化脚本;三、k6生成ES6轻量脚本用于CI/CD;四、curl+parallel命令行快速验证接口吞吐。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 如果您希望使用Trae的AI辅助生成接口并发压力测试脚本,但发现其未直接输...
· AI · 239509