title: Passing parameters from Java to Python using Jython
body: <p>I am passing string values to a python script using Jython. In my program, I do this several times. However, during a test I am running to see if the class that sends the parameters is working properly, I see that the python script outputs the same string values as the initial inputs. </p>
  
  <p>Here is the Java class:</p>
  
  <pre><code>public class SendToCal
  {
  
  
  PythonInterpreter interp  = null;
  StringWriter clout = null;
  String [] arguments = null;
  
  private String start=null,end=null,subject = null;
  Properties props = new Properties();
  
  
  public SendToCal(String start,String end, String subject) 
  {
      try{
  
      setInputs(start,end,subject);
      arguments = getInputs(start,end,subject);
      //---------------------------------------------
      //---------------trying out jython test--------
      props.setProperty("python.path","C:\\folder\\where\\I\\have\\stuff\\2.7-b1\\Lib', '__classpath__', '__pyclasspath__/");
      PythonInterpreter.initialize(System.getProperties(), props,arguments);
  
  
      this.interp = new PythonInterpreter();
  
      clout = new StringWriter();
  
      interp.setOut(clout);
      interp.execfile("C:\\folder\\to\\file\\pyscript.py");
  
  
      String outputStr = clout.toString();
  
      System.out.println(outputStr);
      clout.close();
      }catch(IOException ex)
      {
          ex.printStackTrace();
      }
  
  
  
  }
   public void setInputs(String start, String end, String sub)
  {
      this.start = start;
      this.end = end;
      this.subject = sub;
  
  }
  
  public String[] getInputs(String start, String end, String sub)
  {
      String [] arr = {this.start,this.end,this.subject};
  
     return arr;
  
  }
  
  
  public  static void main(String[] args) throws InterruptedException
  {
  
      String st2 = 2018+"-"+ 8 +"-"+ 6+ " " +"12:00";
      String en2 = 2018+"-"+ 8 +"-"+ 6+ " " +"11:59";
      String su2 = "YAY PYTHON AGAIN!!";
      new SendToCal(st2, en2, su2);
  
      TimeUnit.SECONDS.sleep(1);
  
  
      String st = 1999+"-"+ 7 +"-"+ 17+ " " +"12:00";
      String en = 1999+"-"+ 7 +"-"+ 17+ " " +"11:59";
      String su = "YAY PYTHON!!";
      new SendToCal(st, en, su);
  
  
   }
  }
  </code></pre>
  
  <p>Also, below is my python script: </p>
  
  <pre><code>import sys
  def pyscript(arg1,arg2,arg3):
      print ("calling python function with parameters:")
      print arg1
      print arg2
      print arg3
  
  pyscript(sys.argv[0],sys.argv[1],sys.argv[2])
  </code></pre>
  
  <p>My issue is when I call the Java constructor with two or more completely different string arrays, the output from python is a duplicate of the first array input. Any help is appreciated.</p>
  
  <p>I get the following output: </p>
  
  <pre><code>calling python function with parameters:
  2018-8-6 12:00
  2018-8-6 11:59
  YAY PYTHON AGAIN!!
  
  calling python function with parameters:
  2018-8-6 12:00
  2018-8-6 11:59
  YAY PYTHON AGAIN!!
  </code></pre>
  
  <p>I expect: </p>
  
  <pre><code>calling python function with parameters:
  2018-8-6 12:00
  2018-8-6 11:59
  YAY PYTHON AGAIN!!
  
  calling python function with parameters:
  1999-7-17 12:00
  1999-7-17 11:59
  YAY PYTHON AGAIN!!
  </code></pre>