¿Cómo puedo obtener mi script de Python (versión 2.5) para ejecutar un archivo jar dentro de una carpeta en lugar de hacerlo desde la línea de comandos?

Estoy familiarizado con el uso de os.system para ejecutar desde la línea de comandos. Sin embargo, me gustaría poder ejecutar un archivo jar desde dentro de una carpeta específica, por ejemplo. mi carpeta de ‘prueba’. Esto se debe a que mi tarro (ubicado en mi carpeta ‘prueba’) requiere un archivo dentro de mi carpeta ‘prueba’. Entonces, ¿cómo escribiría una función en mi script que haga lo siguiente: c:\test>java -jar run_this.jar required_parameter.ext ? Soy un novato de Python, así que los detalles son muy apreciados. Gracias por adelantado.

Aquí hay un pequeño script para empezar. Hay maneras de hacerlo “mejor”, pero no saber el scope completo de lo que está tratando de lograr esto debería ser suficiente.

 import os if __name__ == "__main__": startingDir = os.getcwd() # save our current directory testDir = "\\test" # note that \ is windows specific, and we have to escape it os.chdir(testDir) # change to our test directory os.system("java -jar run_this.jar required_paramter.ext") os.chdir(startingDir) # change back to where we started 

En general: use os.chdir para cambiar el directorio del proceso principal, luego os.system para ejecutar el archivo jar. Si necesita mantener estable el directorio de trabajo de Python, debe volver al directorio de trabajo original; debe grabarlo con os.getcwd ().

En Unix: cree un proceso hijo con os.fork explícitamente. En el padre, espere al niño con os.waitpid. En el niño, use os.chdir, luego os.exec para ejecutar java.