Как мне запустить файл JAR с QProcess - PullRequest
0 голосов
/ 17 сентября 2018

Я запускал командные файлы, которые раньше запускали 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 тоже то же самое. Там нет разницы в письмах. )

Не могли бы вы сказать мне, как запустить его нормально?

...