JessonGuo 2022-05-10 17:14 采纳率: 0%
浏览 79

Java调用Python脚本无法生成文件问题

问题遇到的现象和发生背景

在命令行调用python执行结果可以在指定位置生成所需结果文件,但在java中调用python只能获得同样的输出语句,但是不生成所需结果文件,原因不明
因为所调用的python脚本是3.8版本的(Jython只支持2),所以采用RunTime.getRuntime().exec命令行方式调用python脚本

问题相关代码,请勿粘贴截图

源代码

public class LoadPython {
    public static void main(String[] args) {
        Process proc;
        try {
            proc = Runtime.getRuntime().exec("python E:\\develop\\tmp\\tang2\\documents\\customers\\dist\\GM_APP_InputTest.py runSimulation \'{\"baseData\":{\"userId\":100,\"age\":24,\"height\":175,\"weight\":98,\"tdi\":66,\"glycuresisType\":1,\"hba1c\":25},\"events\":[{\"cho\":{\"timeStart\":\"10:30\",\"timeEnd\":\"10:00\",\"type\":1,\"data\":20}}]}\'");// 执行py文件

            //用输入输出流来截取结果
            BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            proc.destroy();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}


运行结果及报错内容

命令行响应结果

E:\develop\tmp\tang2\documents\customers\dist>python GM_APP_InputTest.py runSimulation '{"baseData":{"userId":100,"age":24,"height":175,"weight":98,"tdi":66,"glycuresisType":1,"hba1c":25},"events":[{"cho":{"timeStart":"10:30","timeEnd":"10:00","type":1,"data":20}}]}'
adult#average
Process ID: 13028
Simulation starts ...
Simulation Completed!
simulation time:  5.2851855754852295

idea信息栏运行输出结果

adult#average
Process ID: 6972
Simulation starts ...
Simulation Completed!
simulation time:  5.270181179046631

Process finished with exit code 0
我的解答思路和尝试过的方法

两者运行输出结果一致,命令行可以生成这个adult#average.csv文件,但是java的runtime始终无法生成目标文件

我想要达到的结果

在哪里做出修改,可以使java中调用python生成文件

  • 写回答

1条回答 默认 最新

  • 於黾 2022-05-10 17:23
    关注

    1.首先确定你调用的python到底执行了没有,在python脚本里写点日志
    目测你路径都写错了,/不是转义符,不要都写2遍,\才是转义符

    评论

报告相同问题?

问题事件

  • 创建了问题 5月10日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,