Tengo una pregunta sobre el uso de os.execvp
en Python. Tengo el siguiente trozo de código que se utiliza para crear una lista de argumentos:Usando os.execvp en Python
args = [ "java" , classpath , "-Djava.library.path=" + lib_path() , ea , "-Xmx1000m" , "-server" , "code_swarm" , params ]
Cuando salida de una cadena usando " ".join(args)
y pegar que en mi intérprete de comandos, la JVM lanza bien, y todo funciona. Todo funciona si uso os.system(" ".join(args))
en mi script de Python, también.
Pero el siguiente fragmento de código no funciona:
os.execvp("java", args)
me sale el siguiente error:
Unrecognized option: -classpath [and then the classpath I created, which looks okay] Could not create the Java virtual machine.
Entonces, ¿qué pasa? ¿Por qué funciona copiar/pegar en el shell o usar os.system()
, pero no os.execvp()
?
Puede simplemente usar "print sys.argv", ya que str (list()) == repr (list()) –
@John Millikin: Gracias, eliminé el redundante repr(). – CesarB