Getting Python exit code when calling Python script from Java program

Lie Lie.1296 at gmail.com
Wed Jun 18 12:21:10 CEST 2008


On Jun 18, 3:54 pm, Quill_Patri... at emc.com wrote:
> I have a Python script which is used to load data into a database. Up to
> now this script has been run by customers from the Windows command
> prompt using "python edg_loader.pyc". Any error messages generated are
> written to a log file.  A project team working in the same company as me
> here would like to use this loading utility. They write UI applications
> for Windows using Java. They were able to launch the Python script from
> within Java by creating a Process using Java ProcessBuilder class.
> However, the way the error handling is currently implemented isn't
> really suitable for use in a UI application. As I'm sure you can
> appreciate it's not really feasible to tell users of a UI program to
> keep checking the log files while the loading is underway!!. Ideally
> they would like the Python loading utility to return an error code and
> error message - the error message could then be displayed on a message
> box on the UI.
> I seem to be having problems implementing this. I tried using the
> sys.exit() method in my script and passed non -zero values. However the
> value wasn't picked up the by Java Process.exitValue() method - it kept
> picking up 0. On investigation it turned out that the exit value being
> read is from python.exe process, not from the Python script. Is there
> any way I can obtain the return value of a python script from a Java
> program?
>
> I did manage to get some sort of return error message. I wrote a test
> message to sys.stderr in the Python script and this was picked up by
> Java Process.getErrorSteam() method.
> However I would really like to get the return codes working if possible
> and would appreciate any suggestions on how to implement this.
>
> Thanks,
> Patricia Quill

I'm not experienced in Java and Python, but if all else fails, you
could always create a file (or append to the log file) a special
string that indicates what the problem or whether it runs
successfully. The GUI application would always check this file after
script execution



More information about the Python-list mailing list