想法:使用java编写web应用,使用人脸识别的功能。一开始想到利用java调用python文件即可,中途遇到切换anaconda的python环境问题,特此记录。查资料过程中,发现利用socket通信,让java和python交互可能更加好使,之后有机会再搞。
同时,还有一些疑惑,如果直接在cmd调用python的文件,会爆出很多TensorFlow的版本警告问题,但是java控制台却并没有输出警告信息!
package com.lan.facenet;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@SpringBootTest
class FacenetApplicationTests {
@Test
void contextLoads() {
Process proc;
String pathBat = "F:\\华为云盘\\学习\\java_stu\\facenet\\src\\main\\resources\\static\\pythonbat.bat";
try {
proc = Runtime.getRuntime().exec(new String[]{"cmd.exe","/c",pathBat});
proc.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream(),"GBK"));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}