在Java进程中运行Python脚本时出现语法错误

在Java进程中运行Python脚本时出现语法错误,java,process,processbuilder,Java,Process,Processbuilder,我有一个python脚本,它应该接收两个PDF文件并输出一个图像。它在终端中运行良好,但当我尝试使用process builder在Java进程中运行它时,它会给我一个语法错误,我不知道为什么 我正在终端中使用python3命令: python3 /pathToMyPythonScript/command_line.py /Users/myname/Desktop/one.pdf /Users/myname/Desktop/two.pdf > /Users/myname/Desktop/X

我有一个python脚本,它应该接收两个PDF文件并输出一个图像。它在终端中运行良好,但当我尝试使用process builder在Java进程中运行它时,它会给我一个语法错误,我不知道为什么

我正在终端中使用python3命令:

python3 /pathToMyPythonScript/command_line.py /Users/myname/Desktop/one.pdf /Users/myname/Desktop/two.pdf > /Users/myname/Desktop/XXXXXXXXXXXXXXXXXXXXX.png
它工作并产生所需的输出

还尝试:

/usr/local/bin/python3/pathtomypythonscript/command_line.py/Users/myname/Desktop/one.pdf/Users/myname/Desktop/two.pdf>/Users/myname/Desktop/xxxxxxxxxxxxxxxxxxxxxx.png

而且它也很好用

当我使用以下代码在java代码中调用相同的脚本时:

Process p = new ProcessBuilder("/usr/local/bin/python3", fileOneLocation, fileTwoLocation, outputFileDestination).inheritIO().start();
所有变量都已声明,所有文件都存在

我的eclipse控制台输出是一个错误:

我错过了什么?它在终端中工作正常,但在Java中工作不正常。

答案如下:


您忘了在Java代码的ProcessBuilder中提到实际的python脚本,难道不应该有要运行的python文件吗?目前只有一个对python的调用,然后传递PDF——但不是您实际的pythonscript@hage据我所知,Java进程使用的是命令,而不是脚本。您可能正在考虑使用Jython之类的解决方案。别担心@hage您是对的。没有注意到这样的事情,我感到很难过。非常感谢。忘记在Process Builder中添加scriptPathVariable.No。在您的命令行示例中,您调用python command_line.py one.pdf two.pdf,但在Java代码中没有对您的python脚本的引用,解释器认为它的第一个参数是脚本-但它实际上是一个pdf文件非常感谢@hage!
File "/Users/myname/Desktop/one.pdf", line 1
    %PDF-1.3
    ^
SyntaxError: invalid syntax