Я запускал командные файлы, которые раньше запускали 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'])
Но это не работает.
Обратите внимание, что вся информация о параметрах одинакова. (Backspace тоже то же самое.
Там нет разницы в письмах. )
Не могли бы вы сказать мне, как запустить его нормально?