Mam pytanie dotyczące używania os.execvp
w języku Python. Mam następujący fragment kodu, który jest używany do utworzenia listy argumentów:Korzystanie z narzędzia os.execvp w języku Python
args = [ "java" , classpath , "-Djava.library.path=" + lib_path() , ea , "-Xmx1000m" , "-server" , "code_swarm" , params ]
Kiedy wyjście ciąg używając " ".join(args)
i wklej to do moich poleceń powłoki, JVM uruchamia grzywny, i wszystko działa. Wszystko działa, jeśli używam również os.system(" ".join(args))
w moim skrypcie Pythona.
Ale następujący fragment kodu nie działa:
os.execvp("java", args)
pojawia się następujący błąd:
Unrecognized option: -classpath [and then the classpath I created, which looks okay] Could not create the Java virtual machine.
Więc co się dzieje? Dlaczego kopiowanie/wklejanie do powłoki lub używanie os.system()
działa, ale nie działa?
Możesz po prostu użyć "print sys.argv", ponieważ str (list()) == repr (list()) –
@John Millikin: Dzięki, usunąłem redundantny repr(). – CesarB