1.打包
@RequestMapping("optimizess")
public String Opt() throws JsonParseException, JsonMappingException, IOException {
ProcessBuilder processBuilder =new ProcessBuilder();
//设置执行的第三方程序(命令),第一个参数是命令,之后的是参数
// processBuilder.command("ping","127.0.0.1");
processBuilder.command("G:\\Item\\zhucaiyouhuaexe\\dist\\main\\main.exe");
// processBuilder.command("java","-jar","f:/xc-service-manage-course.jar");
//将标准输入流和错误输入流合并,通过标准输入流读取信息就可以拿到第三方程序输出的错误信息、正常信息
processBuilder.redirectErrorStream(true);
//启动一个进程
Process process = processBuilder.start();
//由于前边将错误和正常信息合并在输入流,只读取输入流
InputStream inputStream = process.getInputStream();
//将字节流转成字符流
InputStreamReader reader = new InputStreamReader(inputStream,"gbk");
//字符缓冲区
char[] chars = new char[1024];
int len = -1;
while((len = reader.read(chars))!=-1){
String string = new String(chars,0,len);
System.out.println(string);
}
inputStream.close();
reader.close();
return "ret";
}
2.不打包
@RequestMapping("/optimize")
public String Opt2() throws JsonParseException, JsonMappingException, IOException {
//调用python
try {
System.out.println("start");
//环境和main
String[] args1=new String[]{"C:\\Users\\lenovo\\Anaconda3\\python.exe","G:\\java软件\\eclipse\\data\\Opypython\\src\\main.py"};
Process pr=Runtime.getRuntime().exec(args1);
BufferedReader in = new BufferedReader(new InputStreamReader(
pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
System.out.println("end");
} catch (Exception e) {
e.printStackTrace();
return null;
};
return "sec";
}