您的当前位置:首页java调用python脚本包含第三方包

java调用python脚本包含第三方包

2024-12-12 来源:哗拓教育

公司代码都用java编写,但是我做机器学习离不开python,而且还包含第三方包sklearn。现在再搞tensorflow,在老公的唐僧念之下,跑通了,分享一下代码。

public void java2python() throws Exception{
//      python解析器的路径
        String s1 = "D:\\ProgramData\\Anaconda3\\envs\\tensorflow\\python";
//      要执行的python脚本
        String s2 = "D:\\pythonworkspace\\DeepLearning\\temp.py";
//      传入python脚本的参数
        String s3 = 3+"";
        String s4 = 4+"";
        String[] arguments = new String[] {s1, s2, s3, s4};
        Process process = Runtime.getRuntime().exec(arguments);
        BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line;
        String result = "";
//        python里的运行结果,想传给java,就需要用这种readline的形式了。
        while ((line = in.readLine()) != null) {
            result += line;
            System.out.println(line);
        }
        in.close();
//        System.out.println(result);
    }

python部分的代码很简单,就是tensorflow的一个helloword

# -*- coding: utf-8 -*-


import tensorflow as tf

hello = tf.constant("Hello!TensorFlow")
test = tf.constant("bye")
sess = tf.Session()
print(sess.run(hello))
print(sess.run(test))

# 下面没用,只是为了尝试java调python时传参用的
import sys

a = sys.argv[1]  # 接收第一个参数
b = sys.argv[2]  # 接收第二个参数

print(int(a) + int(b))
显示全文