2024.1.13-每日进度笔记

发布时间 2024-01-13 16:02:38作者: 张旭彤

今天,主要尝试了在java中调用已有的python脚本并输出相关信息。

 

参考:百度文心一言的回复。

 

package test0113;

import java.io.*;

public class test {
    public static void main(String[] args) {
        try {
            // 指定Python解释器的路径
            String pythonPath = "D:\\softdata\\Anaconda_envs\\envs\\paddle_env\\python.exe";

            // 调用Python脚本,例如:"script.py"
            String[] cmd = new String[] { pythonPath, "D:\\develop\\PycharmProjects\\paddle\\test.py" };

            // 创建ProcessBuilder对象
            ProcessBuilder pb = new ProcessBuilder(cmd);

            // 启动进程并等待完成
            Process p = pb.start();
            // 原始没有注释,不知道为什么不注释会卡死
            // p.waitFor();

            // 获取进程的标准输出流和标准错误流
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
            BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

            // 打印进程的标准输出流信息
            String s;
            while ((s = stdInput.readLine()) != null) {
                System.out.println("Standard Output of the Python script: " + s);
            }
            stdInput.close();

            // 打印进程的标准错误流信息
            while ((s = stdError.readLine()) != null) {
                System.out.println("Standard Error of the Python script: " + s);
            }
            stdError.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}