Размер кучи при запуске пакетного файла, который запускает JVM под Jenkins

У меня есть сборка Jenkins, и один из этапов сборки - командный шаг windows, который вызывает файл bat.

Пакетный файл содержит следующую команду, которая создает JVM

SET JAVA_OPTS=-Xmx4g -Xms512m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m

call sbt %cmd% "run %db% %dbuser% %dbpass% %df% %dfport% %dfuser% %dfpass% %epsg% %starttime%"

Если я использую -Xmx4g, как указано выше, команда завершится неудачно в Jenkins с

Invalid maximum heap size: -Xmx4g The specified size exceeds the maximum representable size.

Однако, если я запускаю тот же пакетный файл за пределами Jenkins на подчиненном компьютере в командной строке, у меня вообще не возникает проблем.

Если я запускаю команду под Jenkins с -Xmx2g, то она исчерпывает память, так как это слишком маленький размер кучи для команды, но по крайней мере она выполняется без Неверного максимального размера кучи.

Как предотвратить запрет на запуск JVM на этом этапе сборки Jenkins?

Я попробовал следующее, но пока не нашел решения, позволяющего завершить этот этап сборки:

  1. Изменение размера кучи на сервере Jenkins (хотя проблема не связана с JVM на стороне сервера)
  2. Изменение размера кучи, назначенной ведомому устройству, на котором выполняется сборка (с использованием параметров JVM на странице конфигурации узла на сервере Jenkins)

Любые другие предложения?

1 ответ

Я не использовал 64-битную версию JAVA - я изменил версию JAVA на ведомом устройстве на 64-битную версию, убедившись, что Jenkins использовал эту версию как в агенте, так и на этапе, который запустил JVM, и теперь у меня нет о проблеме я сообщил.

Другие вопросы по тегам