如何使用QProcess运行jar文件

时间:2018-09-17 05:06:25

标签: python pyqt pyqt4 qprocess

我一直在运行以前运行jar文件的批处理文件。

我的批处理文件的内容是:

@echo off
"%JAVA_HOME%\bin\java" -Dfile.encoding=utf-8 -Djava.file.encoding=UTF-8 -jar -Xms1024m -Xmx1024m C:\val\val.jar --basedir C:\val --filetype shp --cidx 5 --layerdefpath C:\val\임상도layer.json --valoptpath C:\val\임상도option.json --objfilepath C:\val\50000.zip --crs EPSG:5186

pause>nul

在我的Python中,我做到了。

query = 'C:/val/start.bat'
# self.process is mean QProcess()
self.process.start(query)

这些都已成功完成。

现在,我要直接调用jar文件而不是批处理文件。

我的新代码是:

program = os.path.join(os.environ["JAVA_HOME"], r"bin\java.exe")

self.process.start(program,
                   ['-Dfile.encoding=utf-8', '-Djava.file.encoding=UTF-8', '-jar',
                    '-Xms1024m', '-Xmx1024m', r'C:\val\val.jar',
                    # args
                    r'--basedir', r'C:\val',
                    r'--filetype', 'shp',
                    r'--cidx', r'%s' % str(self.dockwidget.cidx.currentIndex() + 1),
                    r'--layerdefpath', r'%s' % self.dockwidget.path1.text().replace("/", "\\", 2).decode('utf-8'),
                    r'--valoptpath', r'%s' % self.dockwidget.path2.text().replace("/", "\\", 2).decode('utf-8'),
                    r'--objfilepath', r'%s' % self.dockwidget.path3.text().replace("/", "\\", 2).decode('utf-8'),
                    r'--crs', 'EPSG:5186'])

但这不起作用。

请注意,所有参数信息均相同。 (退格键也一样。  字母没有区别。 )

您能告诉我如何正常运行吗?

0 个答案:

没有答案