Calling Python from Java

I want to call a python

script from Java. My python version is 2.5 and Java is 6.

My current code:

try{
    Process p= Runtime.getRuntime().exec("path/dirs/file.py");
    p.waitFor();
    } catch (InterruptedException ex){
    System.out.println(ex.getMessage());}
    }

      

Received error:

Java.IO.IOException: Unable to start program filename: CreateProcess error = 193,% 1 is not a valid Win32 application

+3


source to share


4 answers


Try using PrecessBuilder

-

try{

   String prg = "import sys\nprint int(sys.argv[1])+int(sys.argv[2])\n";
   BufferedWriter out = new BufferedWriter(new FileWriter("test1.py"));
   out.write(prg);
   out.close();
   int number1 = 10;
   int number2 = 32;

   ProcessBuilder pb = new ProcessBuilder("python","test1.py",""+number1,""+number2);
   Process p = pb.start();

   BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
   int ret = new Integer(in.readLine()).intValue();
   System.out.println("value is : "+ret);
}catch(Exception e){System.out.println(e);}

      



See here for details .

+2


source


You can only run a Windows executable such as EXE or BAT using the Runtime.exec function. You need to find a way to instantiate the Python interpreter and then specify the filename using a .BAT file.



0


source


The easiest way to integrate a Java application with Python is using Jython .

I've used this in the past to create scripted java applications before we got access to Nashorn and it looks like it.

0


source


try this, It works for me

test_python.py

def addition(a,b):
    c=a+b
    return(c)

      

interpreterPython.java

package com.pythonconnect;
import org.python.util.PythonInterpreter;

public class interpreterPython {
    public static void main(String[] args) {
        System.setProperty("python.cachedir.skip", "true");
        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.execfile("test_python.py");
        interpreter.exec("print(addition(7,8))");
    }
}

      

0


source







All Articles