Getting Python exit code when calling Python script from Java program

Discussion in 'Python' started by Quill_Patricia@emc.com, Jun 18, 2008.

  1. Guest

    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
     
    , Jun 18, 2008
    #1
    1. Advertising

  2. Lie Guest

    Re: Getting Python exit code when calling Python script from Javaprogram

    On Jun 18, 3:54 pm, 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
     
    Lie, Jun 18, 2008
    #2
    1. Advertising

  3. In article <>,
    > 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.


    I don't believe there is any such distinction. The exit status of
    python.exe is the exit status determined by the script.

    -M-
     
    Matthew Woodcraft, Jun 18, 2008
    #3
  4. Re: Getting Python exit code when calling Python script from Javaprogram

    En Wed, 18 Jun 2008 08:09:58 -0300, A.T.Hofkamp <>
    escribió:
    > On 2008-06-18, <> wrote:


    >> 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

    >
    > This is not what I see happening here:
    >
    > x.py:
    > import sys
    > sys.exit(138)
    >
    > % python2.4 x.py
    > % echo $?
    > 138
    >
    > as you can see, the mechanism works at my Linux system.


    It works fine on Windows too, the OS she appears to be using:

    C:\TEMP>python x.py

    C:\TEMP>echo %ERRORLEVEL%
    138

    --
    Gabriel Genellina
     
    Gabriel Genellina, Jun 18, 2008
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?U2FuZHk=?=

    Code to Exit Web App and Exit Internet Explorer

    =?Utf-8?B?U2FuZHk=?=, Aug 3, 2005, in forum: ASP .Net
    Replies:
    7
    Views:
    7,904
    =?Utf-8?B?U2FuZHk=?=
    Aug 5, 2005
  2. Rey
    Replies:
    4
    Views:
    10,955
    Roedy Green
    Dec 12, 2003
  3. Joe Smith
    Replies:
    4
    Views:
    65,859
    sandeep1976
    Nov 8, 2006
  4. Yujo
    Replies:
    2
    Views:
    406
    Gabriel Genellina
    Apr 10, 2007
  5. kaleem
    Replies:
    8
    Views:
    821
    Tad McClellan
    Dec 14, 2006
Loading...

Share This Page