我一直在运行以前运行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'])
但这不起作用。
请注意,所有参数信息均相同。 (退格键也一样。 字母没有区别。 )
您能告诉我如何正常运行吗?