Выполнить java команду на сервере

1. ovadia 25.02.21 16:09 Сейчас в теме
Подскажите, пожалуйста, как правильно сделать запуск команды в процедуре &НаСервере.
На сервере стоит JRE и утилита DocumentConverter. Утилита конвертирует файлы в формат pdf и запускается командой "java -jar dist\DocumentConverter.jar -h=300 -w=200 -m=5 -s=file:///D:/download/test.txt -d=file:///D:/test2.pdf -t=text".
Запускали под системой на самом сервере. Все работает, конвертация выполняется.

Теперь хочу прописать запуск в коде конфигурации.
Например:
&НаСервере
Процедура MyProc()
    WshShell = New COMObject("Wscript.Shell");
    WshShell.Run("java -jar dist\DocumentConverter.jar -h=300 -w=200 -m=5 -s=file:///D:/download/test.txt -d=file:///D:/test2.pdf -t=text", , 1);
КонецПроцедуры


Вываливается ошибка: "Ошибка при вызове метода контекста (Run)".
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. TimurD 6 25.02.21 17:36 Сейчас в теме
Попробуй через ЗапуститьПриложение
3. ovadia 25.02.21 17:49 Сейчас в теме
(2)
ЗапуститьПриложение


s_cmd = "java -jar C:\DocumentConverter\dist\DocumentConverter.jar -h=300 -w=200 -m=5 -s=file:///C:/Users/USR1CV8/AppData/Local/Temp/v8_F8FE_32.png -d=file:///C:/Users/USR1CV8/AppData/Local/Temp/tempfilePDF.pdf -t=picture";
ЗапуститьПриложение(s_cmd);


Ошибка при вызове метода контекста (ЗапуститьПриложение):
Не удалось запустить "java -jar C:\DocumentConverter\dist\DocumentConverter.jar -h=300 -w=200 -m=5 -s=file:///C:/Users/USR1CV8/AppData/Local/Temp/v8_F8FE_32.png -d=file:///C:/Users/USR1CV8/AppData/Local/Temp/tempfilePDF.pdf -t=picture",
по причине: 2(0x00000002): Не удается найти указанный файл.

Не понятно. Какой файл не видит? DocumentConverter.jar или v8_F8FE_32.png? Вроде бы все на месте. Почему не видит? Я доступ к самому серверу не имею, поэтому мне трудно сказать, что там на серверной части.
4. TimurD 6 25.02.21 18:01 Сейчас в теме
Вечная проблема с доступами((( Попробуй DocumentConverter.jar закинуть в C:/Users/USR1CV8/AppData/Local/Temp, а в параметре путь указывать только имя файла (с расширением). Я как - то вытягивал из pdf количество страниц, тож через какой-то exe. Скидывал все в Temp, в определенную папку.
5. ovadia 25.02.21 18:04 Сейчас в теме
(4) Думаю, да. Спасибо. Попробую обратиться к сисадминам.
6. _nameless_ 15.03.21 04:41 Сейчас в теме
(5) Здравствуйте, получилось у Вас?

У меня такая же проблема.

Написал парсер PDF на Java, создал исполняемый файл jar.
Сохранил его в макете, как двоичные данные.
В процедуре 1с сохраняю с макета в файл jar в "../AppData/Local/Temp",
потом через ЗапуститьПриложение() запускаю свой jar файл, и функция ЗапуститьПриложение() валится, говорит нет такого файла "...jar".
Хотя он есть и если его запустить в командной строке, то он исполняется...

Если подсунуть другой парсер с расширением EXE (pdftotext.exe), то все работает.
7. _nameless_ 15.03.21 06:16 Сейчас в теме
Проблему победил.
Можно запустить jar с помощью процедуры КомандаСистемы(Команда), но тогда открывается консольное окно.
А можно через com wScript.Shell, собственно так и сделал и консольное окно не отображается:
        Com = Новый COMObject("wScript.Shell");
	Com.Run(Команда,0, Истина); // третий параметр - дождаться завершения работы
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот