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());
}