将数据从java传递给python并返回jython

时间:2016-01-07 14:22:31

标签: java python-2.7 jython jython-2.7

我正在使用Jython从Java运行python脚本。当我使用PythonInterpreter调用脚本时,我能够将数据作为命令行参数发送到python脚本。

现在我想从Jython脚本中调用Java方法,传递List作为方法参数。我该怎么做?

1 个答案:

答案 0 :(得分:2)

我发布了从Java传递数据的代码 - > Python和Python - > Java的。希望这有助于某人! 在这个,字符串数组" s"被传递给python脚本和python," city" list通过函数调用getData()从python传递给Java。

JavaProg.java:

import org.python.core.PyInstance;
import org.python.util.PythonInterpreter;


public class JavaProg
{
    static PythonInterpreter interpreter;

   @SuppressWarnings("resource")
public static void main( String gargs[] )
   {
      String[] s = {"New York", "Chicago"};
      PythonInterpreter.initialize(System.getProperties(),System.getProperties(), s);
      interpreter = new PythonInterpreter();
      interpreter.execfile("PyScript.py");
      PyInstance hello = (PyInstance) interpreter.eval("PyScript" + "(" + "None" + ")");
   }

   public void getData(Object[] data)
   {
       for (int i = 0; i < data.length; i++) {
           System.out.print(data[i].toString());
    }

   }
}

PyScript.py:

import JavaProg
class PyScript:
    def __init__(self,txt):
        city = []
        for i in range(0,len(sys.argv)):
            city.append(str(sys.argv[i]))
        jObj = JavaProg()
        jObj.getData(city)
        print "Done!"