【问题标题】:Python 2.7 subprocess call method not working to run java commandPython 2.7 子进程调用方法无法运行 java 命令
【发布时间】:2016-12-02 04:57:52
【问题描述】:

我正在尝试使用 python 脚本来操作我的 java 程序的输入文件。我这样做的方式是生成文件名并将其传递给subprocess.call() 方法来执行。这是我的程序:

def execJava(self):
    self.thisCmd="pause"
    call(self.javaCmd,shell=True)
    call(self.pauseCmd,shell=True)

在哪里,

self.javaCmd = 'java -ea -esa -Xfuture -Xss64m -classpath "C:\FVSDK_9_1_1\lib\x86_64\msc_12.0-sse2_crtdll\*" -Djava.library.path="C:\FVSDK_9_1_1\lib\x86_64\msc_12.0-sse2_crtdll;C:\FVSDK_9_1_1\lib\x86_64\share" com.cognitec.jfrsdk.examples.MatchFIRAgainstGallery C:\FVSDK_9_1_1\etc\frsdk.cfg 0 .\tmp\frsdk-scratch\probe_1.fir .\tmp\test\*' 

是的,这是一个很长的复杂 java 指令,但是当我在命令提示符下运行它时,它工作正常。只有当我将它作为字符串传递时,它才会运行并返回:

Exception in thread "main" java.lang.Error

经过一番摸索,发现是由于指令中有\x\t,所以才执行

.\tmp\test\*

作为

mp  est\*

因为它在执行时将\t 替换为制表符空间。我查了很多,没有找到任何解决方案。非常感谢任何帮助。

【问题讨论】:

    标签: java windows python-2.7 subprocess


    【解决方案1】:

    在路径中使用正斜杠“/”而不是反斜杠“\”。

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2021-06-02
      相关资源
      最近更新 更多