java执行python文件,py里有需要.h5文件

做课程设计,需要把后台部署到服务器上。由于后台需要的模型是python写的,所以在Java里调用.py文件。博客上有很多人写了相关内容,但是由于自己踩了很多坑,于是记录一下。

一开始执行总是报错。原因是 .py里有个.h5文件 ,java的工作环境找不到它。所以把文件放在工作环境下就可以了。如果不知道放在哪里,可以在.py先生成一个文件(参看下面给出的博客),然后在所写的Java项目里找生成的文件。

可以参看下面的博客:
链接:https://blog.csdn.net/qq_42826337/article/details/88839562

Java代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.ArrayList;

public class test {

    public static void main(String[] args) {
         String[] arguments = new String[] {"python", "D:\\pycharm_project\\fff\\1.py", "D:\\1.jpg"};//.py需要的参数
//相当于在cmd执行 “python D:\\pycharm_project\\fff\\1.py D:\\1.jpg”
            try {
                Process process = Runtime.getRuntime().exec(arguments);  //核心部分
                BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
                String line = null;  
              while ((line = in.readLine()) != null) {  
                  System.out.println(line);  
              } 
              
              int re = process.waitFor();  
              System.out.println(re);//输出0代表执行正确,输出1,2..代表错误
              while ((line = in.readLine()) != null) {  
                  System.out.println(line);  
              } 
              in.close(); 
            } catch (Exception e) {
                e.printStackTrace();
            }  


    }

}

 

import requests
import sys
import os
import numpy as np
import h5py

import numpy as np
from numpy import linalg as LA


def prediction(pic_dir):
    #pic_dir 代表图片路径
    # 这里填写模型的路径
    h5f = h5py.File('testCNN.h5', 'r') # 我需要文件
    


prediction(sys.argv[1]) 

 

posted @ 2019-11-15 16:33  清谗  阅读(560)  评论(0编辑  收藏  举报