使用Popen运行Java应用程序
我正在Linux服务器上运行tika,我想使用python(subprocess.Popen)运行它 但是,我有一个非根访问权限,所以我只有一个本地java安装。每次我需要为每个会话设置java主目录和路径时: 导出JAVA_HOME=/usr/JAVA/jdk1.5.0_07/bin/JAVA 导出路径=$PATH:/usr/java/jdk1.5.0_07/bin 然后我可以从java目录运行tika,并将输出保存到某个文件使用Popen运行Java应用程序,java,python,linux,apache-tika,Java,Python,Linux,Apache Tika,我正在Linux服务器上运行tika,我想使用python(subprocess.Popen)运行它 但是,我有一个非根访问权限,所以我只有一个本地java安装。每次我需要为每个会话设置java主目录和路径时: 导出JAVA_HOME=/usr/JAVA/jdk1.5.0_07/bin/JAVA 导出路径=$PATH:/usr/java/jdk1.5.0_07/bin 然后我可以从java目录运行tika,并将输出保存到某个文件out\u txt.txt curl www.vit.org/dow
out\u txt.txt
curl www.vit.org/downloads/doc/tarriff.doc | java-jar
tika-app-1.3.jar--text>out\u txt.txt
因此,我需要知道如何使用Popen来:
out\u txt.txt
- 在
之前使用Popen
,这将为所有后续调用设置环境变量。或对于路径:os.setenv('JAVA_HOME','/usr/JAVA/jdk1.5.0_07')
os.environ['PATH'] += ":/usr/java/jdk1.5.0_07"
- 将环境dict作为以下内容传递给
:Popen
- 打开文件进行写入,并将其作为
(可选stdout
)传递到stderr
:Popen
- 通过将
传递给shell=True
,将其留给shell:Popen
Popen("curl www.vit.org/downloads/doc/tariff.doc | java -jar tika-app-1.3.jar --text >out_txt.txt", shell=True)
路径
,而是将Java bin目录附加到它。更新了我的答案以反映这一点。或者只使用完整路径。
output = open(outfile, 'wb')
subprocess.Popen(args, stdout=output, stderr=output)
Popen("curl www.vit.org/downloads/doc/tariff.doc | java -jar tika-app-1.3.jar --text >out_txt.txt", shell=True)