java获取主机名、用户名、IP地址
InetAddress addr = InetAddress.getLocalHost();
HOST = addr.getHostName();
USERNAME = System.getProperty("user.name");
IP = addr.getHostAddress().toString();
利用指定python版本(python安装路径),通过相对路径在java中调用python服务端启动程序,实现双击运行python脚本的功能。
String args1 ="C:\\Users\\" + USERNAME +"\\AppData\\Local\\Programs\\Python\\Python36\\python "+ pythonServerPath;
process = Runtime.getRuntime().exec(args1);
java客户端,通过IP和端口号创建socket,发送和接受信息
try {
Socket socket = new Socket(IP, PORT);
// 获取输出流对象
OutputStream os = socket.getOutputStream();
PrintStream out = new PrintStream(os);
// 发送内容
out.print(imagepath);
// 告诉服务进程,内容发送完毕,可以开始处理
out.print("over");
out.flush();
socket.shutdownOutput();
// 获取服务进程的输入流
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
String tmp = null;
StringBuilder Rst_py = new StringBuilder();
// 读取内容
while((tmp = br.readLine()) != null) {
Rst_py.append(tmp);
}
socket.close();
os.close();
is.close();
}