Tôi có câu hỏi về cách sử dụng os.execvp
bằng Python. Tôi có chút mã sau đây được dùng để tạo ra một danh sách các đối số:Sử dụng os.execvp bằng Python
args = [ "java" , classpath , "-Djava.library.path=" + lib_path() , ea , "-Xmx1000m" , "-server" , "code_swarm" , params ]
Khi tôi ra một chuỗi sử dụng " ".join(args)
và dán vào dấu nhắc shell của tôi, JVM khởi động tốt, và mọi thứ hoạt động. Mọi thứ đều hoạt động nếu tôi sử dụng os.system(" ".join(args))
trong tập lệnh Python của tôi.
Nhưng bit mã sau đây không làm việc:
os.execvp("java", args)
tôi nhận được lỗi sau:
Unrecognized option: -classpath [and then the classpath I created, which looks okay] Could not create the Java virtual machine.
Vì vậy, những gì mang lại? Tại sao sao chép/dán vào vỏ hoặc sử dụng os.system()
hoạt động, nhưng không phải os.execvp()
?
Bạn chỉ có thể sử dụng "print sys.argv", vì str (list()) == repr (danh sách()) –
@John Millikin: Cảm ơn, tôi đã loại bỏ repr dư thừa(). – CesarB