У меня есть вопрос об использовании os.execvp
в Python. У меня есть следующий фрагмент кода, который используется для создания списка аргументов:
args = [ "java"
, classpath
, "-Djava.library.path=" + lib_path()
, ea
, "-Xmx1000m"
, "-server"
, "code_swarm"
, params
]
Когда я вывожу строку с помощью " ".join(args)
и вставляю ее в приглашение оболочки, JVM запускается нормально, и все работает. Все работает, если я использую os.system(" ".join(args))
в своем скрипте Python.
Но следующий бит кода не работает:
os.execvp("java", args)
Я получаю следующую ошибку:
Unrecognized option: -classpath [and then the classpath I created, which looks okay]
Could not create the Java virtual machine.
Так что же дает? Почему копирование / вставка в оболочку или использование os.system()
работает, но не os.execvp()
?