在python中os_在Python中使用os.execvp

在Python中尝试使用os.execvp()启动Java进程时遇到问题,错误提示为未识别的选项-classpath。当命令通过shell或者os.system()执行时正常工作。可能的原因是os.execvp()直接将参数列表传递给执行程序,而shell可能在处理路径或特殊字符时有所不同。解决方案可能包括正确设置环境变量或使用shell=True来调用os.system()。
摘要由CSDN通过智能技术生成

我有一个关于在

Python中使用os.execvp的问题.我有以下用于创建参数列表的代码:

args = [ "java"

, classpath

, "-Djava.library.path=" + lib_path()

, ea

, "-Xmx1000m"

, "-server"

, "code_swarm"

, params

]

当我使用“.join(args)输出一个字符串并将其粘贴到我的shell提示符中时,JVM启动正常,一切正常.如果我在Python脚本中使用os.system(“”.join(args)),一切都会有效.

但是下面的代码不起作用:

os.execvp("java", args)

我收到以下错误:

Unrecognized option: -classpath [and then the classpath I created, which looks okay]

Could not create the Java virtual machine.

什么给出了什么?为什么复制/粘贴到shell或使用os.system()工作,而不是os.execvp()?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值