1. 程式人生 > >在java中呼叫python方法

在java中呼叫python方法

  1. import javax.script.*;  
  2. import org.python.util.PythonInterpreter;  
  3. import java.io.*;  
  4. importstatic java.lang.System.*;  
  5. publicclass FirstJavaScript  
  6. {  
  7.  publicstaticvoid main(String args[])  
  8.  {  
  9.   PythonInterpreter interpreter = new PythonInterpreter();  
  10.   interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); "
    );  
  11.   interpreter.exec("print days[1];");  
  12.  }//main
  13. }  


這樣得到的結果是Tue,在控制檯顯示出來,這是直接進行呼叫的。

2.在java中呼叫本機python指令碼中的函式:

   首先建立一個python指令碼,名字為:my_utils.py

  1. def adder(a, b):  
  2.     return a + b  

然後建立一個java類,用來測試,

java類程式碼 FirstJavaScript:

  1. import javax.script.*;  
  2. import org.python.core.PyFunction;  
  3. import org.python.core.PyInteger;  
  4. import org.python.core.PyObject;  
  5. import org.python.util.PythonInterpreter;  
  6. import java.io.*;  
  7. importstatic java.lang.System.*;  
  8. publicclass FirstJavaScript  
  9. {  
  10.     publicstaticvoid main(String args[])  
  11.     {  
  12.         PythonInterpreter interpreter = new PythonInterpreter();  
  13.         interpreter.execfile("C:\\Python27\\programs\\my_utils.py");  
  14.         PyFunction func = (PyFunction)interpreter.get("adder",PyFunction.class);  
  15.         int a = 2010, b = 2 ;  
  16.         PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));  
  17.         System.out.println("anwser = " + pyobj.toString());  
  18.     }//main
  19. }  

得到的結果是:anwser = 2012

3.使用java直接執行python指令碼,

建立指令碼inputpy

  1. #open files
  2. print'hello'
  3. number=[3,5,2,0,6]  
  4. print number  
  5. number.sort()  
  6. print number  
  7. number.append(0)  
  8. print number  
  9. print number.count(0)  
  10. print number.index(5)  


建立java類,呼叫這個指令碼:

  1. import javax.script.*;  
  2. import org.python.core.PyFunction;  
  3. import org.python.core.PyInteger;  
  4. import org.python.core.PyObject;  
  5. import org.python.util.PythonInterpreter;  
  6. import java.io.*;  
  7. importstatic java.lang.System.*;  
  8. publicclass FirstJavaScript  
  9. {  
  10.  publicstaticvoid main(String args[])  
  11.  {  
  12.   PythonInterpreter interpreter = new PythonInterpreter();  
  13.   interpreter.execfile("C:\\Python27\\programs\\input.py");  
  14.  }//main
  15. }  


得到的結果是:

  1. hello  
  2. [3, 5, 2, 0, 6]  
  3. [0, 2, 3, 5, 6]  
  4. [0, 2, 3, 5, 6, 0]  
  5. 2  
  6. 3