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