zedking217 2023-03-19 02:49 采纳率: 50%
浏览 33
已结题

java用runtime调用python程序报错

java用runtime调用python程序报错

        String executer = "E:\\anaconda\\envs\\pytorch\\python";
        String file_path3 = "C:\\Users\\asus190611tan\\Desktop\\yolov5pro\\1.py";
        String[] command_line = new String[] {executer, file_path1};
        try {
            Process process = Runtime.getRuntime().exec(command_line);
            BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            // java代码中的 process.waitFor() 返回值(和我们通常意义上见到的0与1定义正好相反)
            // 返回值为0 - 表示调用python脚本成功;
            // 返回值为1 - 表示调用python脚本失败。
            int re = process.waitFor();
            System.out.println("调用 python 脚本是否成功:" + re);
        } catch (IOException e1) {
            e1.printStackTrace();
        } catch (InterruptedException e2) {
            e2.printStackTrace();
        }

网上查了,runtime函数是在cmd里面跑,于是我去cmd里面运行了一下

C:\Users\asus190611tan>E:\anaconda\envs\pytorch\python C:\Users\asus190611tan\Desktop\yolov5pro\track.py
Traceback (most recent call last):
  File "C:\Users\asus190611tan\Desktop\yolov5pro\track.py", line 303, in <module>
    detect(args)
  File "C:\Users\asus190611tan\Desktop\yolov5pro\track.py", line 103, in detect
    cfg.merge_from_file(opt.config_deepsort)
  File "C:\Users\asus190611tan\Desktop\yolov5pro\deep_sort_pytorch\utils\parser.py", line 24, in merge_from_file
    with open(config_file, 'r') as fo:
FileNotFoundError: [Errno 2] No such file or directory: 'deep_sort_pytorch/configs/deep_sort.yaml'

报错文件

img

检测了一下文件路径是对的

img

展开全部

  • 写回答

3条回答 默认 最新

  • 成都渔民 2023-03-19 02:58
    关注

    这里可能是工作路径的问题。因为你使用了相对路径。你可以尝试在命令行下进入到工程所在目录,再试试会不会出错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    zedking217 2023-03-19 08:49

    img


    牛,真的可以
    那我怎么在java里面运行呢

    回复
    zedking217 2023-03-19 08:51

    真的可以,那在java里面怎么修改呢

    回复
    成都渔民 回复 zedking217 2023-03-19 12:19

    Runtime.getRuntime().exec(command_line, null, yourpath);
    yourpath 是你的py文件所在的路径。
    我不确定这样是否可行,你可以试试。

    如果上面的方法不可信,可以尝试另外一种最保险的方法,就是修改py文件,将相对路径改为绝对路径。

    img

    回复
    展开全部4条评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月21日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部