public static void main (String[] args) throws Exception{ String path = "C:\\Users\\Administrator\\PycharmProjects\\testext\\jcpy.py"; //path = path.replaceAll("/", "\\"); Process proc = Runtime.getRuntime().exec("python"); OutputStream ots = proc.getOutputStream(); BufferedWriter osw = new BufferedWriter(new OutputStreamWriter(ots)); osw.newLine(); osw.write("print ('hello')"); osw.newLine(); osw.write("print ('word')"); osw.newLine(); osw.write("exit(200)"); osw.flush(); osw.close(); InputStream ins = proc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(ins)); String line = br.readLine(); while (line != null){ System.out.println(line); line = br.readLine(); } proc.waitFor(); System.out.println(proc.exitValue()); }
public static void main (String[] args) throws Exception{ String[] unknown = {"x","y"}; String[] expression = {"x+y-5"}; testJieFangCheng(unknown,expression); } public static void testJieFangCheng(String[] unknown, String[] expression) throws Exception{ Process proc = Runtime.getRuntime().exec("python"); OutputStream ots = proc.getOutputStream(); BufferedWriter osw = new BufferedWriter(new OutputStreamWriter(ots)); osw.newLine(); osw.write("from sympy import *"); StringBuffer showElement = new StringBuffer("["); for (String ele : unknown){ osw.newLine(); osw.write(ele.concat(" = Symbol('").concat(ele).concat("')")); showElement.append(ele).append(","); } showElement.delete(showElement.length()-1, showElement.length()).append("]"); StringBuffer showExpre = new StringBuffer("["); for (String expre : expression){ showExpre.append(expre).append(","); } showExpre.delete(showExpre.length()-1, showExpre.length()).append("]"); StringBuffer result = new StringBuffer("result = solve("); result.append(showExpre).append(",").append(showElement).append(")"); osw.newLine(); osw.write(result.toString()); osw.newLine(); osw.newLine(); osw.write("print (result)"); osw.newLine(); osw.write("exit()"); osw.flush(); osw.close(); InputStream ins = proc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(ins)); String line = br.readLine(); while (line != null){ System.out.println(line); line = br.readLine(); } proc.waitFor(); System.out.println(proc.exitValue()); }