On Jun 18, 3:54 pm, [EMAIL PROTECTED] 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 -- http://mail.python.org/mailman/listinfo/python-list